| 280 | } |
| 281 | |
| 282 | void SpirvToolsEliminateDeadInputComponents(spv_target_env target_env, std::vector<unsigned int>& spirv, |
| 283 | spv::SpvBuildLogger*) |
| 284 | { |
| 285 | spvtools::Optimizer optimizer(target_env); |
| 286 | optimizer.SetMessageConsumer(OptimizerMesssageConsumer); |
| 287 | |
| 288 | optimizer.RegisterPass(spvtools::CreateEliminateDeadInputComponentsPass()); |
| 289 | optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass()); |
| 290 | |
| 291 | spvtools::OptimizerOptions spvOptOptions; |
| 292 | optimizer.SetTargetEnv(target_env); |
| 293 | spvOptOptions.set_run_validator(false); |
| 294 | optimizer.Run(spirv.data(), spirv.size(), &spirv, spvOptOptions); |
| 295 | } |
| 296 | |
| 297 | // Apply the SPIRV-Tools optimizer to strip debug info from SPIR-V. This is implicitly done by |
| 298 | // SpirvToolsTransform if spvOptions->stripDebugInfo is set, but can be called separately if |