diff options
Diffstat (limited to 'SPIRV/SpvTools.cpp')
-rw-r--r-- | SPIRV/SpvTools.cpp | 52 |
1 files changed, 1 insertions, 51 deletions
diff --git a/SPIRV/SpvTools.cpp b/SPIRV/SpvTools.cpp index ff04f4f9..8cc17cca 100644 --- a/SPIRV/SpvTools.cpp +++ b/SPIRV/SpvTools.cpp @@ -212,7 +212,7 @@ void SpirvToolsTransform(const glslang::TIntermediate& intermediate, std::vector optimizer.RegisterPass(spvtools::CreateInterpolateFixupPass()); if (options->optimizeSize) { optimizer.RegisterPass(spvtools::CreateRedundancyEliminationPass()); - optimizer.RegisterPass(spvtools::CreateEliminateDeadInputComponentsSafePass()); + optimizer.RegisterPass(spvtools::CreateEliminateDeadInputComponentsPass()); } optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass()); optimizer.RegisterPass(spvtools::CreateCFGCleanupPass()); @@ -223,56 +223,6 @@ void SpirvToolsTransform(const glslang::TIntermediate& intermediate, std::vector optimizer.Run(spirv.data(), spirv.size(), &spirv, spvOptOptions); } -bool SpirvToolsAnalyzeDeadOutputStores(spv_target_env target_env, std::vector<unsigned int>& spirv, - std::unordered_set<uint32_t>* live_locs, - std::unordered_set<uint32_t>* live_builtins, - spv::SpvBuildLogger*) -{ - spvtools::Optimizer optimizer(target_env); - optimizer.SetMessageConsumer(OptimizerMesssageConsumer); - - optimizer.RegisterPass(spvtools::CreateAnalyzeLiveInputPass(live_locs, live_builtins)); - - spvtools::OptimizerOptions spvOptOptions; - optimizer.SetTargetEnv(target_env); - spvOptOptions.set_run_validator(false); - return optimizer.Run(spirv.data(), spirv.size(), &spirv, spvOptOptions); -} - -void SpirvToolsEliminateDeadOutputStores(spv_target_env target_env, std::vector<unsigned int>& spirv, - std::unordered_set<uint32_t>* live_locs, - std::unordered_set<uint32_t>* live_builtins, - spv::SpvBuildLogger*) -{ - spvtools::Optimizer optimizer(target_env); - optimizer.SetMessageConsumer(OptimizerMesssageConsumer); - - optimizer.RegisterPass(spvtools::CreateEliminateDeadOutputStoresPass(live_locs, live_builtins)); - optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass(false, true)); - optimizer.RegisterPass(spvtools::CreateEliminateDeadOutputComponentsPass()); - optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass(false, true)); - - spvtools::OptimizerOptions spvOptOptions; - optimizer.SetTargetEnv(target_env); - spvOptOptions.set_run_validator(false); - optimizer.Run(spirv.data(), spirv.size(), &spirv, spvOptOptions); -} - -void SpirvToolsEliminateDeadInputComponents(spv_target_env target_env, std::vector<unsigned int>& spirv, - spv::SpvBuildLogger*) -{ - spvtools::Optimizer optimizer(target_env); - optimizer.SetMessageConsumer(OptimizerMesssageConsumer); - - optimizer.RegisterPass(spvtools::CreateEliminateDeadInputComponentsPass()); - optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass()); - - spvtools::OptimizerOptions spvOptOptions; - optimizer.SetTargetEnv(target_env); - spvOptOptions.set_run_validator(false); - optimizer.Run(spirv.data(), spirv.size(), &spirv, spvOptOptions); -} - // Apply the SPIRV-Tools optimizer to strip debug info from SPIR-V. This is implicitly done by // SpirvToolsTransform if spvOptions->stripDebugInfo is set, but can be called separately if // optimization is disabled. |