aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAlexander Johnston <alexander@codeplay.com>2018-01-29 10:39:55 +0000
committerSteven Perron <stevenperron@google.com>2018-02-08 22:55:47 -0500
commit84ccd0b9ae1c4008bb3a36c527827fcabb354468 (patch)
tree555120fcc073096419eab1224688e62bb240cbbd /include
parentca4457b4b6e20f8f37731a3cf086e963fa52ff31 (diff)
downloadspirv-tools-84ccd0b9ae1c4008bb3a36c527827fcabb354468.tar.gz
Loop invariant code motion initial implementation
Diffstat (limited to 'include')
-rw-r--r--include/spirv-tools/optimizer.hpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/spirv-tools/optimizer.hpp b/include/spirv-tools/optimizer.hpp
index becd024e..e738b506 100644
--- a/include/spirv-tools/optimizer.hpp
+++ b/include/spirv-tools/optimizer.hpp
@@ -463,6 +463,11 @@ Optimizer::PassToken CreateMergeReturnPass();
// same value, and remove the redundant ones.
Optimizer::PassToken CreateLocalRedundancyEliminationPass();
+// Create LICM pass.
+// This pass will look for invariant instructions inside loops and hoist them to
+// the loops preheader.
+Optimizer::PassToken CreateLoopInvariantCodeMotionPass();
+
// Create global value numbering pass.
// This pass will look for instructions where the same value is computed on all
// paths leading to the instruction. Those instructions are deleted.