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.....
