Squashed 'third_party/SPIRV-Tools/' changes from 0741f4273..9668d2e4e

9668d2e4e spirv-val: Label and add test for PSB Aligned (#4756)
c6d5474f4 BUILD.gn: Enable independent builds within the Chromium tree (#4762)
9d1b57288 spirv-opt: (WIP) Eliminate Dead Input Component Pass (#4720)
f8cd51431 spirv-val: Add better error code for invalid operand (#4753)
3820c4f6e Qualify std::move. (#4741)
0ab57c2c4 spirv-val: Small Cleanup of validate image (#4752)
7963fa13c spirv-val: Add Vulkan Dref not allowed 3D dim VUID (#4751)
5c9d55a59 spirv-val: Add Vulkan Image VUID 06214 (#4750)
970070857 spirv-val: Label Vulkan RuntimeArray VUID (#4749)
ca59914c7 spirv-val: Disallow array of push constants (#4742)

git-subtree-dir: third_party/SPIRV-Tools
git-subtree-split: 9668d2e4e4b7e089fd8f25c50c373df07e05d4a9
diff --git a/source/opt/optimizer.cpp b/source/opt/optimizer.cpp
index ec2c8ea..f28b1ba 100644
--- a/source/opt/optimizer.cpp
+++ b/source/opt/optimizer.cpp
@@ -523,6 +523,8 @@
     RegisterPass(CreateInterpolateFixupPass());
   } else if (pass_name == "remove-dont-inline") {
     RegisterPass(CreateRemoveDontInlinePass());
+  } else if (pass_name == "eliminate-dead-input-components") {
+    RegisterPass(CreateEliminateDeadInputComponentsPass());
   } else if (pass_name == "convert-to-sampled-image") {
     if (pass_args.size() > 0) {
       auto descriptor_set_binding_pairs =
@@ -1004,6 +1006,11 @@
       MakeUnique<opt::InterpFixupPass>());
 }
 
+Optimizer::PassToken CreateEliminateDeadInputComponentsPass() {
+  return MakeUnique<Optimizer::PassToken::Impl>(
+      MakeUnique<opt::EliminateDeadInputComponentsPass>());
+}
+
 Optimizer::PassToken CreateConvertToSampledImagePass(
     const std::vector<opt::DescriptorSetAndBinding>&
         descriptor_set_binding_pairs) {