summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorSteven Perron <stevenperron@google.com>2017-10-23 15:48:29 -0400
committerDavid Neto <dneto@google.com>2017-10-23 22:09:12 -0400
commit8d6e4dbc7271ec31d0cf1b92ca94d7c2090ac55d (patch)
tree2967613782882e0d729c0e9b4319a4c59c5a9d70 /source
parente3a720933046c2c3e8baa03def79f1e17dfcc098 (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.txt6
-rw-r--r--source/opt/optimizer.cpp6
-rw-r--r--source/util/ilist_node.h4
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;
}