Lines Matching full:optimizer
15 #include "spirv-tools/optimizer.hpp"
46 struct Optimizer::PassToken::Impl {
52 Optimizer::PassToken::PassToken( in PassToken()
53 std::unique_ptr<Optimizer::PassToken::Impl> impl) in PassToken()
56 Optimizer::PassToken::PassToken(std::unique_ptr<opt::Pass>&& pass) in PassToken()
57 : impl_(MakeUnique<Optimizer::PassToken::Impl>(std::move(pass))) {} in PassToken()
59 Optimizer::PassToken::PassToken(PassToken&& that) in PassToken()
62 Optimizer::PassToken& Optimizer::PassToken::operator=(PassToken&& that) { in operator =()
67 Optimizer::PassToken::~PassToken() {} in ~PassToken()
69 struct Optimizer::Impl {
77 Optimizer::Optimizer(spv_target_env env) : impl_(new Impl(env)) { in Optimizer() function in spvtools::Optimizer
81 Optimizer::~Optimizer() {} in ~Optimizer()
83 void Optimizer::SetMessageConsumer(MessageConsumer c) { in SetMessageConsumer()
91 const MessageConsumer& Optimizer::consumer() const { in consumer()
95 Optimizer& Optimizer::RegisterPass(PassToken&& p) { in RegisterPass()
123 Optimizer& Optimizer::RegisterLegalizationPasses(bool preserve_interface) { in RegisterLegalizationPasses()
176 Optimizer& Optimizer::RegisterLegalizationPasses() { in RegisterLegalizationPasses()
180 Optimizer& Optimizer::RegisterPerformancePasses(bool preserve_interface) { in RegisterPerformancePasses()
227 Optimizer& Optimizer::RegisterPerformancePasses() { in RegisterPerformancePasses()
231 Optimizer& Optimizer::RegisterSizePasses(bool preserve_interface) { in RegisterSizePasses()
267 Optimizer& Optimizer::RegisterSizePasses() { return RegisterSizePasses(false); } in RegisterSizePasses()
269 bool Optimizer::RegisterPassesFromFlags(const std::vector<std::string>& flags) { in RegisterPassesFromFlags()
273 bool Optimizer::RegisterPassesFromFlags(const std::vector<std::string>& flags, in RegisterPassesFromFlags()
284 bool Optimizer::FlagHasValidForm(const std::string& flag) const { in FlagHasValidForm()
299 bool Optimizer::RegisterPassFromFlag(const std::string& flag) { in RegisterPassFromFlag()
303 bool Optimizer::RegisterPassFromFlag(const std::string& flag, in RegisterPassFromFlag()
640 void Optimizer::SetTargetEnv(const spv_target_env env) { in SetTargetEnv()
644 bool Optimizer::Run(const uint32_t* original_binary, in Run()
651 bool Optimizer::Run(const uint32_t* original_binary, in Run()
663 bool Optimizer::Run(const uint32_t* original_binary, in Run()
704 "Binary size unexpectedly changed despite the optimizer saying " in Run()
713 "Binary content unexpectedly changed despite the optimizer saying " in Run()
727 Optimizer& Optimizer::SetPrintAll(std::ostream* out) { in SetPrintAll()
732 Optimizer& Optimizer::SetTimeReport(std::ostream* out) { in SetTimeReport()
737 Optimizer& Optimizer::SetValidateAfterAll(bool validate) { in SetValidateAfterAll()
742 Optimizer::PassToken CreateNullPass() { in CreateNullPass()
743 return MakeUnique<Optimizer::PassToken::Impl>(MakeUnique<opt::NullPass>()); in CreateNullPass()
746 Optimizer::PassToken CreateStripDebugInfoPass() { in CreateStripDebugInfoPass()
747 return MakeUnique<Optimizer::PassToken::Impl>( in CreateStripDebugInfoPass()
751 Optimizer::PassToken CreateStripReflectInfoPass() { in CreateStripReflectInfoPass()
755 Optimizer::PassToken CreateStripNonSemanticInfoPass() { in CreateStripNonSemanticInfoPass()
756 return MakeUnique<Optimizer::PassToken::Impl>( in CreateStripNonSemanticInfoPass()
760 Optimizer::PassToken CreateEliminateDeadFunctionsPass() { in CreateEliminateDeadFunctionsPass()
761 return MakeUnique<Optimizer::PassToken::Impl>( in CreateEliminateDeadFunctionsPass()
765 Optimizer::PassToken CreateEliminateDeadMembersPass() { in CreateEliminateDeadMembersPass()
766 return MakeUnique<Optimizer::PassToken::Impl>( in CreateEliminateDeadMembersPass()
770 Optimizer::PassToken CreateSetSpecConstantDefaultValuePass( in CreateSetSpecConstantDefaultValuePass()
772 return MakeUnique<Optimizer::PassToken::Impl>( in CreateSetSpecConstantDefaultValuePass()
776 Optimizer::PassToken CreateSetSpecConstantDefaultValuePass( in CreateSetSpecConstantDefaultValuePass()
778 return MakeUnique<Optimizer::PassToken::Impl>( in CreateSetSpecConstantDefaultValuePass()
782 Optimizer::PassToken CreateFlattenDecorationPass() { in CreateFlattenDecorationPass()
783 return MakeUnique<Optimizer::PassToken::Impl>( in CreateFlattenDecorationPass()
787 Optimizer::PassToken CreateFreezeSpecConstantValuePass() { in CreateFreezeSpecConstantValuePass()
788 return MakeUnique<Optimizer::PassToken::Impl>( in CreateFreezeSpecConstantValuePass()
792 Optimizer::PassToken CreateFoldSpecConstantOpAndCompositePass() { in CreateFoldSpecConstantOpAndCompositePass()
793 return MakeUnique<Optimizer::PassToken::Impl>( in CreateFoldSpecConstantOpAndCompositePass()
797 Optimizer::PassToken CreateUnifyConstantPass() { in CreateUnifyConstantPass()
798 return MakeUnique<Optimizer::PassToken::Impl>( in CreateUnifyConstantPass()
802 Optimizer::PassToken CreateEliminateDeadConstantPass() { in CreateEliminateDeadConstantPass()
803 return MakeUnique<Optimizer::PassToken::Impl>( in CreateEliminateDeadConstantPass()
807 Optimizer::PassToken CreateDeadVariableEliminationPass() { in CreateDeadVariableEliminationPass()
808 return MakeUnique<Optimizer::PassToken::Impl>( in CreateDeadVariableEliminationPass()
812 Optimizer::PassToken CreateStrengthReductionPass() { in CreateStrengthReductionPass()
813 return MakeUnique<Optimizer::PassToken::Impl>( in CreateStrengthReductionPass()
817 Optimizer::PassToken CreateBlockMergePass() { in CreateBlockMergePass()
818 return MakeUnique<Optimizer::PassToken::Impl>( in CreateBlockMergePass()
822 Optimizer::PassToken CreateInlineExhaustivePass() { in CreateInlineExhaustivePass()
823 return MakeUnique<Optimizer::PassToken::Impl>( in CreateInlineExhaustivePass()
827 Optimizer::PassToken CreateInlineOpaquePass() { in CreateInlineOpaquePass()
828 return MakeUnique<Optimizer::PassToken::Impl>( in CreateInlineOpaquePass()
832 Optimizer::PassToken CreateLocalAccessChainConvertPass() { in CreateLocalAccessChainConvertPass()
833 return MakeUnique<Optimizer::PassToken::Impl>( in CreateLocalAccessChainConvertPass()
837 Optimizer::PassToken CreateLocalSingleBlockLoadStoreElimPass() { in CreateLocalSingleBlockLoadStoreElimPass()
838 return MakeUnique<Optimizer::PassToken::Impl>( in CreateLocalSingleBlockLoadStoreElimPass()
842 Optimizer::PassToken CreateLocalSingleStoreElimPass() { in CreateLocalSingleStoreElimPass()
843 return MakeUnique<Optimizer::PassToken::Impl>( in CreateLocalSingleStoreElimPass()
847 Optimizer::PassToken CreateInsertExtractElimPass() { in CreateInsertExtractElimPass()
848 return MakeUnique<Optimizer::PassToken::Impl>( in CreateInsertExtractElimPass()
852 Optimizer::PassToken CreateDeadInsertElimPass() { in CreateDeadInsertElimPass()
853 return MakeUnique<Optimizer::PassToken::Impl>( in CreateDeadInsertElimPass()
857 Optimizer::PassToken CreateDeadBranchElimPass() { in CreateDeadBranchElimPass()
858 return MakeUnique<Optimizer::PassToken::Impl>( in CreateDeadBranchElimPass()
862 Optimizer::PassToken CreateLocalMultiStoreElimPass() { in CreateLocalMultiStoreElimPass()
863 return MakeUnique<Optimizer::PassToken::Impl>( in CreateLocalMultiStoreElimPass()
867 Optimizer::PassToken CreateAggressiveDCEPass() { in CreateAggressiveDCEPass()
868 return MakeUnique<Optimizer::PassToken::Impl>( in CreateAggressiveDCEPass()
872 Optimizer::PassToken CreateAggressiveDCEPass(bool preserve_interface) { in CreateAggressiveDCEPass()
873 return MakeUnique<Optimizer::PassToken::Impl>( in CreateAggressiveDCEPass()
877 Optimizer::PassToken CreateAggressiveDCEPass(bool preserve_interface, in CreateAggressiveDCEPass()
879 return MakeUnique<Optimizer::PassToken::Impl>( in CreateAggressiveDCEPass()
883 Optimizer::PassToken CreateRemoveUnusedInterfaceVariablesPass() { in CreateRemoveUnusedInterfaceVariablesPass()
884 return MakeUnique<Optimizer::PassToken::Impl>( in CreateRemoveUnusedInterfaceVariablesPass()
888 Optimizer::PassToken CreatePropagateLineInfoPass() { in CreatePropagateLineInfoPass()
889 return MakeUnique<Optimizer::PassToken::Impl>(MakeUnique<opt::EmptyPass>()); in CreatePropagateLineInfoPass()
892 Optimizer::PassToken CreateRedundantLineInfoElimPass() { in CreateRedundantLineInfoElimPass()
893 return MakeUnique<Optimizer::PassToken::Impl>(MakeUnique<opt::EmptyPass>()); in CreateRedundantLineInfoElimPass()
896 Optimizer::PassToken CreateCompactIdsPass() { in CreateCompactIdsPass()
897 return MakeUnique<Optimizer::PassToken::Impl>( in CreateCompactIdsPass()
901 Optimizer::PassToken CreateMergeReturnPass() { in CreateMergeReturnPass()
902 return MakeUnique<Optimizer::PassToken::Impl>( in CreateMergeReturnPass()
906 std::vector<const char*> Optimizer::GetPassNames() const { in GetPassNames()
914 Optimizer::PassToken CreateCFGCleanupPass() { in CreateCFGCleanupPass()
915 return MakeUnique<Optimizer::PassToken::Impl>( in CreateCFGCleanupPass()
919 Optimizer::PassToken CreateLocalRedundancyEliminationPass() { in CreateLocalRedundancyEliminationPass()
920 return MakeUnique<Optimizer::PassToken::Impl>( in CreateLocalRedundancyEliminationPass()
924 Optimizer::PassToken CreateLoopFissionPass(size_t threshold) { in CreateLoopFissionPass()
925 return MakeUnique<Optimizer::PassToken::Impl>( in CreateLoopFissionPass()
929 Optimizer::PassToken CreateLoopFusionPass(size_t max_registers_per_loop) { in CreateLoopFusionPass()
930 return MakeUnique<Optimizer::PassToken::Impl>( in CreateLoopFusionPass()
934 Optimizer::PassToken CreateLoopInvariantCodeMotionPass() { in CreateLoopInvariantCodeMotionPass()
935 return MakeUnique<Optimizer::PassToken::Impl>(MakeUnique<opt::LICMPass>()); in CreateLoopInvariantCodeMotionPass()
938 Optimizer::PassToken CreateLoopPeelingPass() { in CreateLoopPeelingPass()
939 return MakeUnique<Optimizer::PassToken::Impl>( in CreateLoopPeelingPass()
943 Optimizer::PassToken CreateLoopUnswitchPass() { in CreateLoopUnswitchPass()
944 return MakeUnique<Optimizer::PassToken::Impl>( in CreateLoopUnswitchPass()
948 Optimizer::PassToken CreateRedundancyEliminationPass() { in CreateRedundancyEliminationPass()
949 return MakeUnique<Optimizer::PassToken::Impl>( in CreateRedundancyEliminationPass()
953 Optimizer::PassToken CreateRemoveDuplicatesPass() { in CreateRemoveDuplicatesPass()
954 return MakeUnique<Optimizer::PassToken::Impl>( in CreateRemoveDuplicatesPass()
958 Optimizer::PassToken CreateScalarReplacementPass(uint32_t size_limit) { in CreateScalarReplacementPass()
959 return MakeUnique<Optimizer::PassToken::Impl>( in CreateScalarReplacementPass()
963 Optimizer::PassToken CreatePrivateToLocalPass() { in CreatePrivateToLocalPass()
964 return MakeUnique<Optimizer::PassToken::Impl>( in CreatePrivateToLocalPass()
968 Optimizer::PassToken CreateCCPPass() { in CreateCCPPass()
969 return MakeUnique<Optimizer::PassToken::Impl>(MakeUnique<opt::CCPPass>()); in CreateCCPPass()
972 Optimizer::PassToken CreateWorkaround1209Pass() { in CreateWorkaround1209Pass()
973 return MakeUnique<Optimizer::PassToken::Impl>( in CreateWorkaround1209Pass()
977 Optimizer::PassToken CreateIfConversionPass() { in CreateIfConversionPass()
978 return MakeUnique<Optimizer::PassToken::Impl>( in CreateIfConversionPass()
982 Optimizer::PassToken CreateReplaceInvalidOpcodePass() { in CreateReplaceInvalidOpcodePass()
983 return MakeUnique<Optimizer::PassToken::Impl>( in CreateReplaceInvalidOpcodePass()
987 Optimizer::PassToken CreateSimplificationPass() { in CreateSimplificationPass()
988 return MakeUnique<Optimizer::PassToken::Impl>( in CreateSimplificationPass()
992 Optimizer::PassToken CreateLoopUnrollPass(bool fully_unroll, int factor) { in CreateLoopUnrollPass()
993 return MakeUnique<Optimizer::PassToken::Impl>( in CreateLoopUnrollPass()
997 Optimizer::PassToken CreateSSARewritePass() { in CreateSSARewritePass()
998 return MakeUnique<Optimizer::PassToken::Impl>( in CreateSSARewritePass()
1002 Optimizer::PassToken CreateCopyPropagateArraysPass() { in CreateCopyPropagateArraysPass()
1003 return MakeUnique<Optimizer::PassToken::Impl>( in CreateCopyPropagateArraysPass()
1007 Optimizer::PassToken CreateVectorDCEPass() { in CreateVectorDCEPass()
1008 return MakeUnique<Optimizer::PassToken::Impl>(MakeUnique<opt::VectorDCE>()); in CreateVectorDCEPass()
1011 Optimizer::PassToken CreateReduceLoadSizePass( in CreateReduceLoadSizePass()
1013 return MakeUnique<Optimizer::PassToken::Impl>( in CreateReduceLoadSizePass()
1017 Optimizer::PassToken CreateCombineAccessChainsPass() { in CreateCombineAccessChainsPass()
1018 return MakeUnique<Optimizer::PassToken::Impl>( in CreateCombineAccessChainsPass()
1022 Optimizer::PassToken CreateUpgradeMemoryModelPass() { in CreateUpgradeMemoryModelPass()
1023 return MakeUnique<Optimizer::PassToken::Impl>( in CreateUpgradeMemoryModelPass()
1027 Optimizer::PassToken CreateInstBindlessCheckPass(uint32_t shader_id) { in CreateInstBindlessCheckPass()
1028 return MakeUnique<Optimizer::PassToken::Impl>( in CreateInstBindlessCheckPass()
1032 Optimizer::PassToken CreateInstDebugPrintfPass(uint32_t desc_set, in CreateInstDebugPrintfPass()
1034 return MakeUnique<Optimizer::PassToken::Impl>( in CreateInstDebugPrintfPass()
1038 Optimizer::PassToken CreateInstBuffAddrCheckPass(uint32_t shader_id) { in CreateInstBuffAddrCheckPass()
1039 return MakeUnique<Optimizer::PassToken::Impl>( in CreateInstBuffAddrCheckPass()
1043 Optimizer::PassToken CreateConvertRelaxedToHalfPass() { in CreateConvertRelaxedToHalfPass()
1044 return MakeUnique<Optimizer::PassToken::Impl>( in CreateConvertRelaxedToHalfPass()
1048 Optimizer::PassToken CreateRelaxFloatOpsPass() { in CreateRelaxFloatOpsPass()
1049 return MakeUnique<Optimizer::PassToken::Impl>( in CreateRelaxFloatOpsPass()
1053 Optimizer::PassToken CreateCodeSinkingPass() { in CreateCodeSinkingPass()
1054 return MakeUnique<Optimizer::PassToken::Impl>( in CreateCodeSinkingPass()
1058 Optimizer::PassToken CreateFixStorageClassPass() { in CreateFixStorageClassPass()
1059 return MakeUnique<Optimizer::PassToken::Impl>( in CreateFixStorageClassPass()
1063 Optimizer::PassToken CreateGraphicsRobustAccessPass() { in CreateGraphicsRobustAccessPass()
1064 return MakeUnique<Optimizer::PassToken::Impl>( in CreateGraphicsRobustAccessPass()
1068 Optimizer::PassToken CreateReplaceDescArrayAccessUsingVarIndexPass() { in CreateReplaceDescArrayAccessUsingVarIndexPass()
1069 return MakeUnique<Optimizer::PassToken::Impl>( in CreateReplaceDescArrayAccessUsingVarIndexPass()
1073 Optimizer::PassToken CreateSpreadVolatileSemanticsPass() { in CreateSpreadVolatileSemanticsPass()
1074 return MakeUnique<Optimizer::PassToken::Impl>( in CreateSpreadVolatileSemanticsPass()
1078 Optimizer::PassToken CreateDescriptorScalarReplacementPass() { in CreateDescriptorScalarReplacementPass()
1079 return MakeUnique<Optimizer::PassToken::Impl>( in CreateDescriptorScalarReplacementPass()
1083 Optimizer::PassToken CreateWrapOpKillPass() { in CreateWrapOpKillPass()
1084 return MakeUnique<Optimizer::PassToken::Impl>(MakeUnique<opt::WrapOpKill>()); in CreateWrapOpKillPass()
1087 Optimizer::PassToken CreateAmdExtToKhrPass() { in CreateAmdExtToKhrPass()
1088 return MakeUnique<Optimizer::PassToken::Impl>( in CreateAmdExtToKhrPass()
1092 Optimizer::PassToken CreateInterpolateFixupPass() { in CreateInterpolateFixupPass()
1093 return MakeUnique<Optimizer::PassToken::Impl>( in CreateInterpolateFixupPass()
1097 Optimizer::PassToken CreateEliminateDeadInputComponentsPass() { in CreateEliminateDeadInputComponentsPass()
1098 return MakeUnique<Optimizer::PassToken::Impl>( in CreateEliminateDeadInputComponentsPass()
1103 Optimizer::PassToken CreateEliminateDeadOutputComponentsPass() { in CreateEliminateDeadOutputComponentsPass()
1104 return MakeUnique<Optimizer::PassToken::Impl>( in CreateEliminateDeadOutputComponentsPass()
1109 Optimizer::PassToken CreateEliminateDeadInputComponentsSafePass() { in CreateEliminateDeadInputComponentsSafePass()
1110 return MakeUnique<Optimizer::PassToken::Impl>( in CreateEliminateDeadInputComponentsSafePass()
1115 Optimizer::PassToken CreateAnalyzeLiveInputPass( in CreateAnalyzeLiveInputPass()
1118 return MakeUnique<Optimizer::PassToken::Impl>( in CreateAnalyzeLiveInputPass()
1122 Optimizer::PassToken CreateEliminateDeadOutputStoresPass( in CreateEliminateDeadOutputStoresPass()
1125 return MakeUnique<Optimizer::PassToken::Impl>( in CreateEliminateDeadOutputStoresPass()
1129 Optimizer::PassToken CreateConvertToSampledImagePass( in CreateConvertToSampledImagePass()
1132 return MakeUnique<Optimizer::PassToken::Impl>( in CreateConvertToSampledImagePass()
1136 Optimizer::PassToken CreateInterfaceVariableScalarReplacementPass() { in CreateInterfaceVariableScalarReplacementPass()
1137 return MakeUnique<Optimizer::PassToken::Impl>( in CreateInterfaceVariableScalarReplacementPass()
1141 Optimizer::PassToken CreateRemoveDontInlinePass() { in CreateRemoveDontInlinePass()
1142 return MakeUnique<Optimizer::PassToken::Impl>( in CreateRemoveDontInlinePass()
1146 Optimizer::PassToken CreateFixFuncCallArgumentsPass() { in CreateFixFuncCallArgumentsPass()
1147 return MakeUnique<Optimizer::PassToken::Impl>( in CreateFixFuncCallArgumentsPass()
1151 Optimizer::PassToken CreateTrimCapabilitiesPass() { in CreateTrimCapabilitiesPass()
1152 return MakeUnique<Optimizer::PassToken::Impl>( in CreateTrimCapabilitiesPass()
1156 Optimizer::PassToken CreateSwitchDescriptorSetPass(uint32_t from, uint32_t to) { in CreateSwitchDescriptorSetPass()
1157 return MakeUnique<Optimizer::PassToken::Impl>( in CreateSwitchDescriptorSetPass()
1161 Optimizer::PassToken CreateInvocationInterlockPlacementPass() { in CreateInvocationInterlockPlacementPass()
1162 return MakeUnique<Optimizer::PassToken::Impl>( in CreateInvocationInterlockPlacementPass()
1166 Optimizer::PassToken CreateModifyMaximalReconvergencePass(bool add) { in CreateModifyMaximalReconvergencePass()
1167 return MakeUnique<Optimizer::PassToken::Impl>( in CreateModifyMaximalReconvergencePass()
1175 return reinterpret_cast<spv_optimizer_t*>(new spvtools::Optimizer(env)); in spvOptimizerCreate()
1178 SPIRV_TOOLS_EXPORT void spvOptimizerDestroy(spv_optimizer_t* optimizer) { in spvOptimizerDestroy() argument
1179 delete reinterpret_cast<spvtools::Optimizer*>(optimizer); in spvOptimizerDestroy()
1183 spv_optimizer_t* optimizer, spv_message_consumer consumer) { in spvOptimizerSetMessageConsumer() argument
1184 reinterpret_cast<spvtools::Optimizer*>(optimizer)-> in spvOptimizerSetMessageConsumer()
1193 spv_optimizer_t* optimizer) { in spvOptimizerRegisterLegalizationPasses() argument
1194 reinterpret_cast<spvtools::Optimizer*>(optimizer)-> in spvOptimizerRegisterLegalizationPasses()
1199 spv_optimizer_t* optimizer) { in spvOptimizerRegisterPerformancePasses() argument
1200 reinterpret_cast<spvtools::Optimizer*>(optimizer)-> in spvOptimizerRegisterPerformancePasses()
1205 spv_optimizer_t* optimizer) { in spvOptimizerRegisterSizePasses() argument
1206 reinterpret_cast<spvtools::Optimizer*>(optimizer)->RegisterSizePasses(); in spvOptimizerRegisterSizePasses()
1210 spv_optimizer_t* optimizer, const char* flag) in spvOptimizerRegisterPassFromFlag() argument
1212 return reinterpret_cast<spvtools::Optimizer*>(optimizer)-> in spvOptimizerRegisterPassFromFlag()
1217 spv_optimizer_t* optimizer, const char** flags, const size_t flag_count) { in spvOptimizerRegisterPassesFromFlags() argument
1220 return reinterpret_cast<spvtools::Optimizer*>(optimizer) in spvOptimizerRegisterPassesFromFlags()
1226 spv_optimizer_t* optimizer, const char** flags, const size_t flag_count) { in spvOptimizerRegisterPassesFromFlagsWhilePreservingTheInterface() argument
1229 return reinterpret_cast<spvtools::Optimizer*>(optimizer) in spvOptimizerRegisterPassesFromFlagsWhilePreservingTheInterface()
1234 spv_result_t spvOptimizerRun(spv_optimizer_t* optimizer, in spvOptimizerRun() argument
1241 if (!reinterpret_cast<spvtools::Optimizer*>(optimizer)-> in spvOptimizerRun()