Squashed 'third_party/SPIRV-Tools/' changes from f7da52775..a61d07a72

a61d07a72 spirv-val: Fix SPV_KHR_fragment_shading_rate VUID label (#4014)
650acb575 spirv-val: Label Layer and ViewportIndex VUIDs (#4013)
0c036df28 Add dead function elimination to -O (#4015)
c2b2b5788 Add DebugValue for invisible store in single_store_elim (#4002)
c74d5523b Fix SSA re-writing in the presence of variable pointers. (#4010)
02195a029 spirv-fuzz: Fixes to pass management (#4011)
bcf5b211d spirv-fuzz: Add support for reining in rogue fuzzer passes (#3987)
7d250ed51 spirv-fuzz: Fix assertion failure in FuzzerPassAddCompositeExtract (#3995)
f9937bcc8 spirv-fuzz: Fix invalid equation facts (#4009)
aa6035f1c spirv-fuzz: Fix bugs in TransformationFlattenConditionalBranch (#4006)
5735576f8 spirv-fuzz: Fix bug related to transformation applicability (#3990)

git-subtree-dir: third_party/SPIRV-Tools
git-subtree-split: a61d07a72763c1eb200de0a2c316703643a0d1d9
diff --git a/source/opt/optimizer.cpp b/source/opt/optimizer.cpp
index bc14411..1ded2ee 100644
--- a/source/opt/optimizer.cpp
+++ b/source/opt/optimizer.cpp
@@ -161,6 +161,7 @@
       .RegisterPass(CreateDeadBranchElimPass())
       .RegisterPass(CreateMergeReturnPass())
       .RegisterPass(CreateInlineExhaustivePass())
+      .RegisterPass(CreateEliminateDeadFunctionsPass())
       .RegisterPass(CreateAggressiveDCEPass())
       .RegisterPass(CreatePrivateToLocalPass())
       .RegisterPass(CreateLocalSingleBlockLoadStoreElimPass())