mirror of
https://github.com/KhronosGroup/SPIRV-Tools
synced 2024-10-18 19:20:05 +00:00
Preserve analysies in the simplification pass
Building the def-use chains is very expensive, so we do not want to invalidate them it if is not necessary. At the moment, it seems like most optimizatoins are good at not invalidating the def-use chains, but simplification does. This PR get the simlification pass to keep the analysies valid. Contributes to #1328.
This commit is contained in:
parent
6c75050136
commit
ec3bbf093e
@ -27,6 +27,14 @@ class SimplificationPass : public Pass {
|
||||
public:
|
||||
const char* name() const override { return "simplify-instructions"; }
|
||||
Status Process(ir::IRContext*) override;
|
||||
virtual ir::IRContext::Analysis GetPreservedAnalyses() override {
|
||||
return ir::IRContext::kAnalysisDefUse |
|
||||
ir::IRContext::kAnalysisInstrToBlockMapping |
|
||||
ir::IRContext::kAnalysisDecorations |
|
||||
ir::IRContext::kAnalysisCombinators | ir::IRContext::kAnalysisCFG |
|
||||
ir::IRContext::kAnalysisDominatorAnalysis |
|
||||
ir::IRContext::kAnalysisNameMap;
|
||||
}
|
||||
|
||||
private:
|
||||
// Returns true if the module was changed. The simplifier is called on every
|
||||
|
Loading…
Reference in New Issue
Block a user