diff options
author | Steven Perron <stevenperron@google.com> | 2017-10-23 15:48:29 -0400 |
---|---|---|
committer | David Neto <dneto@google.com> | 2017-10-23 22:09:12 -0400 |
commit | 8d6e4dbc7271ec31d0cf1b92ca94d7c2090ac55d (patch) | |
tree | 2967613782882e0d729c0e9b4319a4c59c5a9d70 /source | |
parent | e3a720933046c2c3e8baa03def79f1e17dfcc098 (diff) |
Run dead variable elimination when using -O and -Os
We want to run the optimization when using -O and -Os, but it was not
added at part of https://github.com/KhronosGroup/SPIRV-Tools/pull/905.
This change will add that a well as some minor formatting changes
requested in that same pull request.
Diffstat (limited to 'source')
-rw-r--r-- | source/opt/CMakeLists.txt | 6 | ||||
-rw-r--r-- | source/opt/optimizer.cpp | 6 | ||||
-rw-r--r-- | source/util/ilist_node.h | 4 |
3 files changed, 10 insertions, 6 deletions
diff --git a/source/opt/CMakeLists.txt b/source/opt/CMakeLists.txt index bf3dcb15..99fe7477 100644 --- a/source/opt/CMakeLists.txt +++ b/source/opt/CMakeLists.txt @@ -21,7 +21,7 @@ add_library(SPIRV-Tools-opt compact_ids_pass.h constants.h dead_branch_elim_pass.h - dead_variable_elimination.h + dead_variable_elimination.h decoration_manager.h def_use_manager.h eliminate_dead_constant_pass.h @@ -67,7 +67,7 @@ add_library(SPIRV-Tools-opt decoration_manager.cpp def_use_manager.cpp dead_branch_elim_pass.cpp - dead_variable_elimination.cpp + dead_variable_elimination.cpp eliminate_dead_constant_pass.cpp flatten_decoration_pass.cpp fold.cpp @@ -97,7 +97,7 @@ add_library(SPIRV-Tools-opt types.cpp type_manager.cpp unify_const_pass.cpp - instruction_list.cpp) + instruction_list.cpp) spvtools_default_compile_options(SPIRV-Tools-opt) target_include_directories(SPIRV-Tools-opt diff --git a/source/opt/optimizer.cpp b/source/opt/optimizer.cpp index a0ea1ebf..2fdfe21b 100644 --- a/source/opt/optimizer.cpp +++ b/source/opt/optimizer.cpp @@ -77,7 +77,8 @@ Optimizer& Optimizer::RegisterPerformancePasses() { .RegisterPass(CreateBlockMergePass()) .RegisterPass(CreateLocalMultiStoreElimPass()) .RegisterPass(CreateInsertExtractElimPass()) - .RegisterPass(CreateCommonUniformElimPass()); + .RegisterPass(CreateCommonUniformElimPass()) + .RegisterPass(CreateDeadVariableEliminationPass()); } Optimizer& Optimizer::RegisterSizePasses() { @@ -91,7 +92,8 @@ Optimizer& Optimizer::RegisterSizePasses() { .RegisterPass(CreateBlockMergePass()) .RegisterPass(CreateLocalMultiStoreElimPass()) .RegisterPass(CreateInsertExtractElimPass()) - .RegisterPass(CreateCommonUniformElimPass()); + .RegisterPass(CreateCommonUniformElimPass()) + .RegisterPass(CreateDeadVariableEliminationPass()); } bool Optimizer::Run(const uint32_t* original_binary, diff --git a/source/util/ilist_node.h b/source/util/ilist_node.h index a0023848..342fb1dc 100644 --- a/source/util/ilist_node.h +++ b/source/util/ilist_node.h @@ -122,7 +122,9 @@ template<class NodeType> inline IntrusiveNodeBase<NodeType>& IntrusiveNodeBase<NodeType>::operator=( const IntrusiveNodeBase&) { assert(!is_sentinel_); - if (IsInAList()) RemoveFromList(); + if (IsInAList()) { + RemoveFromList(); + } return *this; } |