Skip to content

Commit

Permalink
Added more opt passes to PassId enum
Browse files Browse the repository at this point in the history
The enum was missing most of the passes from spirv-tool optimizer.h.

Some passes couldn't be added due to requiring arguments.
  • Loading branch information
Andrey Tuganov committed Oct 5, 2017
1 parent b58a21a commit 84c9dd9
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 0 deletions.
18 changes: 18 additions & 0 deletions libshaderc_util/include/libshaderc_util/spirv_tools_wrapper.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,25 @@ bool SpirvToolsDisassemble(Compiler::TargetEnv env,
enum class PassId {
kNullPass,
kStripDebugInfo,
kEliminateDeadFunctions,
kFlattenDecoration,
kFreezeSpecConstantValue,
kFoldSpecConstantOpAndComposite,
kUnifyConstant,
kEliminateDeadConstant,
kStrengthReduction,
kBlockMerge,
kInlineExhaustive,
kInlineOpaque,
kLocalSingleBlockLoadStoreElim,
kDeadBranchElim,
kLocalMultiStoreElim,
kLocalAccessChainConvert,
kLocalSingleStoreElim,
kInsertExtractElim,
kCommonUniformElim,
kAggressiveDCE,
kCompactIds,
};

// Optimizes the given binary. Passes are registered in the exact order as shown
Expand Down
54 changes: 54 additions & 0 deletions libshaderc_util/src/spirv_tools_wrapper.cc
Original file line number Diff line number Diff line change
Expand Up @@ -105,9 +105,63 @@ bool SpirvToolsOptimize(Compiler::TargetEnv env,
case PassId::kStripDebugInfo:
optimizer.RegisterPass(spvtools::CreateStripDebugInfoPass());
break;
case PassId::kEliminateDeadFunctions:
optimizer.RegisterPass(spvtools::CreateEliminateDeadFunctionsPass());
break;
case PassId::kFlattenDecoration:
optimizer.RegisterPass(spvtools::CreateFlattenDecorationPass());
break;
case PassId::kFreezeSpecConstantValue:
optimizer.RegisterPass(spvtools::CreateFreezeSpecConstantValuePass());
break;
case PassId::kFoldSpecConstantOpAndComposite:
optimizer.RegisterPass(spvtools::CreateFoldSpecConstantOpAndCompositePass());
break;
case PassId::kUnifyConstant:
optimizer.RegisterPass(spvtools::CreateUnifyConstantPass());
break;
case PassId::kEliminateDeadConstant:
optimizer.RegisterPass(spvtools::CreateEliminateDeadConstantPass());
break;
case PassId::kStrengthReduction:
optimizer.RegisterPass(spvtools::CreateStrengthReductionPass());
break;
case PassId::kBlockMerge:
optimizer.RegisterPass(spvtools::CreateBlockMergePass());
break;
case PassId::kInlineExhaustive:
optimizer.RegisterPass(spvtools::CreateInlineExhaustivePass());
break;
case PassId::kInlineOpaque:
optimizer.RegisterPass(spvtools::CreateInlineOpaquePass());
break;
case PassId::kLocalSingleBlockLoadStoreElim:
optimizer.RegisterPass(spvtools::CreateLocalSingleBlockLoadStoreElimPass());
break;
case PassId::kDeadBranchElim:
optimizer.RegisterPass(spvtools::CreateDeadBranchElimPass());
break;
case PassId::kLocalMultiStoreElim:
optimizer.RegisterPass(spvtools::CreateLocalMultiStoreElimPass());
break;
case PassId::kLocalAccessChainConvert:
optimizer.RegisterPass(spvtools::CreateLocalAccessChainConvertPass());
break;
case PassId::kLocalSingleStoreElim:
optimizer.RegisterPass(spvtools::CreateLocalSingleStoreElimPass());
break;
case PassId::kInsertExtractElim:
optimizer.RegisterPass(spvtools::CreateInsertExtractElimPass());
break;
case PassId::kCommonUniformElim:
optimizer.RegisterPass(spvtools::CreateCommonUniformElimPass());
break;
case PassId::kAggressiveDCE:
optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass());
break;
case PassId::kCompactIds:
optimizer.RegisterPass(spvtools::CreateCompactIdsPass());
break;
}
}

Expand Down

0 comments on commit 84c9dd9

Please sign in to comment.