Lines Matching full:optimizer
15 #include "spirv-tools/optimizer.hpp"
45 struct Optimizer::PassToken::Impl {
51 Optimizer::PassToken::PassToken( in PassToken()
52 std::unique_ptr<Optimizer::PassToken::Impl> impl) in PassToken()
55 Optimizer::PassToken::PassToken(std::unique_ptr<opt::Pass>&& pass) in PassToken()
56 : impl_(MakeUnique<Optimizer::PassToken::Impl>(std::move(pass))) {} in PassToken()
58 Optimizer::PassToken::PassToken(PassToken&& that) in PassToken()
61 Optimizer::PassToken& Optimizer::PassToken::operator=(PassToken&& that) { in operator =()
66 Optimizer::PassToken::~PassToken() {} in ~PassToken()
68 struct Optimizer::Impl {
76 Optimizer::Optimizer(spv_target_env env) : impl_(new Impl(env)) { in Optimizer() function in spvtools::Optimizer
80 Optimizer::~Optimizer() {} in ~Optimizer()
82 void Optimizer::SetMessageConsumer(MessageConsumer c) { in SetMessageConsumer()
90 const MessageConsumer& Optimizer::consumer() const { in consumer()
94 Optimizer& Optimizer::RegisterPass(PassToken&& p) { in RegisterPass()
122 Optimizer& Optimizer::RegisterLegalizationPasses(bool preserve_interface) { in RegisterLegalizationPasses()
175 Optimizer& Optimizer::RegisterLegalizationPasses() { in RegisterLegalizationPasses()
179 Optimizer& Optimizer::RegisterPerformancePasses(bool preserve_interface) { in RegisterPerformancePasses()
226 Optimizer& Optimizer::RegisterPerformancePasses() { in RegisterPerformancePasses()
230 Optimizer& Optimizer::RegisterSizePasses(bool preserve_interface) { in RegisterSizePasses()
266 Optimizer& Optimizer::RegisterSizePasses() { return RegisterSizePasses(false); } in RegisterSizePasses()
268 bool Optimizer::RegisterPassesFromFlags(const std::vector<std::string>& flags) { in RegisterPassesFromFlags()
272 bool Optimizer::RegisterPassesFromFlags(const std::vector<std::string>& flags, in RegisterPassesFromFlags()
283 bool Optimizer::FlagHasValidForm(const std::string& flag) const { in FlagHasValidForm()
298 bool Optimizer::RegisterPassFromFlag(const std::string& flag) { in RegisterPassFromFlag()
302 bool Optimizer::RegisterPassFromFlag(const std::string& flag, in RegisterPassFromFlag()
639 void Optimizer::SetTargetEnv(const spv_target_env env) { in SetTargetEnv()
643 bool Optimizer::Run(const uint32_t* original_binary, in Run()
650 bool Optimizer::Run(const uint32_t* original_binary, in Run()
662 bool Optimizer::Run(const uint32_t* original_binary, in Run()
703 "Binary size unexpectedly changed despite the optimizer saying " in Run()
712 "Binary content unexpectedly changed despite the optimizer saying " in Run()
726 Optimizer& Optimizer::SetPrintAll(std::ostream* out) { in SetPrintAll()
731 Optimizer& Optimizer::SetTimeReport(std::ostream* out) { in SetTimeReport()
736 Optimizer& Optimizer::SetValidateAfterAll(bool validate) { in SetValidateAfterAll()
741 Optimizer::PassToken CreateNullPass() { in CreateNullPass()
742 return MakeUnique<Optimizer::PassToken::Impl>(MakeUnique<opt::NullPass>()); in CreateNullPass()
745 Optimizer::PassToken CreateStripDebugInfoPass() { in CreateStripDebugInfoPass()
746 return MakeUnique<Optimizer::PassToken::Impl>( in CreateStripDebugInfoPass()
750 Optimizer::PassToken CreateStripReflectInfoPass() { in CreateStripReflectInfoPass()
754 Optimizer::PassToken CreateStripNonSemanticInfoPass() { in CreateStripNonSemanticInfoPass()
755 return MakeUnique<Optimizer::PassToken::Impl>( in CreateStripNonSemanticInfoPass()
759 Optimizer::PassToken CreateEliminateDeadFunctionsPass() { in CreateEliminateDeadFunctionsPass()
760 return MakeUnique<Optimizer::PassToken::Impl>( in CreateEliminateDeadFunctionsPass()
764 Optimizer::PassToken CreateEliminateDeadMembersPass() { in CreateEliminateDeadMembersPass()
765 return MakeUnique<Optimizer::PassToken::Impl>( in CreateEliminateDeadMembersPass()
769 Optimizer::PassToken CreateSetSpecConstantDefaultValuePass( in CreateSetSpecConstantDefaultValuePass()
771 return MakeUnique<Optimizer::PassToken::Impl>( in CreateSetSpecConstantDefaultValuePass()
775 Optimizer::PassToken CreateSetSpecConstantDefaultValuePass( in CreateSetSpecConstantDefaultValuePass()
777 return MakeUnique<Optimizer::PassToken::Impl>( in CreateSetSpecConstantDefaultValuePass()
781 Optimizer::PassToken CreateFlattenDecorationPass() { in CreateFlattenDecorationPass()
782 return MakeUnique<Optimizer::PassToken::Impl>( in CreateFlattenDecorationPass()
786 Optimizer::PassToken CreateFreezeSpecConstantValuePass() { in CreateFreezeSpecConstantValuePass()
787 return MakeUnique<Optimizer::PassToken::Impl>( in CreateFreezeSpecConstantValuePass()
791 Optimizer::PassToken CreateFoldSpecConstantOpAndCompositePass() { in CreateFoldSpecConstantOpAndCompositePass()
792 return MakeUnique<Optimizer::PassToken::Impl>( in CreateFoldSpecConstantOpAndCompositePass()
796 Optimizer::PassToken CreateUnifyConstantPass() { in CreateUnifyConstantPass()
797 return MakeUnique<Optimizer::PassToken::Impl>( in CreateUnifyConstantPass()
801 Optimizer::PassToken CreateEliminateDeadConstantPass() { in CreateEliminateDeadConstantPass()
802 return MakeUnique<Optimizer::PassToken::Impl>( in CreateEliminateDeadConstantPass()
806 Optimizer::PassToken CreateDeadVariableEliminationPass() { in CreateDeadVariableEliminationPass()
807 return MakeUnique<Optimizer::PassToken::Impl>( in CreateDeadVariableEliminationPass()
811 Optimizer::PassToken CreateStrengthReductionPass() { in CreateStrengthReductionPass()
812 return MakeUnique<Optimizer::PassToken::Impl>( in CreateStrengthReductionPass()
816 Optimizer::PassToken CreateBlockMergePass() { in CreateBlockMergePass()
817 return MakeUnique<Optimizer::PassToken::Impl>( in CreateBlockMergePass()
821 Optimizer::PassToken CreateInlineExhaustivePass() { in CreateInlineExhaustivePass()
822 return MakeUnique<Optimizer::PassToken::Impl>( in CreateInlineExhaustivePass()
826 Optimizer::PassToken CreateInlineOpaquePass() { in CreateInlineOpaquePass()
827 return MakeUnique<Optimizer::PassToken::Impl>( in CreateInlineOpaquePass()
831 Optimizer::PassToken CreateLocalAccessChainConvertPass() { in CreateLocalAccessChainConvertPass()
832 return MakeUnique<Optimizer::PassToken::Impl>( in CreateLocalAccessChainConvertPass()
836 Optimizer::PassToken CreateLocalSingleBlockLoadStoreElimPass() { in CreateLocalSingleBlockLoadStoreElimPass()
837 return MakeUnique<Optimizer::PassToken::Impl>( in CreateLocalSingleBlockLoadStoreElimPass()
841 Optimizer::PassToken CreateLocalSingleStoreElimPass() { in CreateLocalSingleStoreElimPass()
842 return MakeUnique<Optimizer::PassToken::Impl>( in CreateLocalSingleStoreElimPass()
846 Optimizer::PassToken CreateInsertExtractElimPass() { in CreateInsertExtractElimPass()
847 return MakeUnique<Optimizer::PassToken::Impl>( in CreateInsertExtractElimPass()
851 Optimizer::PassToken CreateDeadInsertElimPass() { in CreateDeadInsertElimPass()
852 return MakeUnique<Optimizer::PassToken::Impl>( in CreateDeadInsertElimPass()
856 Optimizer::PassToken CreateDeadBranchElimPass() { in CreateDeadBranchElimPass()
857 return MakeUnique<Optimizer::PassToken::Impl>( in CreateDeadBranchElimPass()
861 Optimizer::PassToken CreateLocalMultiStoreElimPass() { in CreateLocalMultiStoreElimPass()
862 return MakeUnique<Optimizer::PassToken::Impl>( in CreateLocalMultiStoreElimPass()
866 Optimizer::PassToken CreateAggressiveDCEPass() { in CreateAggressiveDCEPass()
867 return MakeUnique<Optimizer::PassToken::Impl>( in CreateAggressiveDCEPass()
871 Optimizer::PassToken CreateAggressiveDCEPass(bool preserve_interface) { in CreateAggressiveDCEPass()
872 return MakeUnique<Optimizer::PassToken::Impl>( in CreateAggressiveDCEPass()
876 Optimizer::PassToken CreateAggressiveDCEPass(bool preserve_interface, in CreateAggressiveDCEPass()
878 return MakeUnique<Optimizer::PassToken::Impl>( in CreateAggressiveDCEPass()
882 Optimizer::PassToken CreateRemoveUnusedInterfaceVariablesPass() { in CreateRemoveUnusedInterfaceVariablesPass()
883 return MakeUnique<Optimizer::PassToken::Impl>( in CreateRemoveUnusedInterfaceVariablesPass()
887 Optimizer::PassToken CreatePropagateLineInfoPass() { in CreatePropagateLineInfoPass()
888 return MakeUnique<Optimizer::PassToken::Impl>(MakeUnique<opt::EmptyPass>()); in CreatePropagateLineInfoPass()
891 Optimizer::PassToken CreateRedundantLineInfoElimPass() { in CreateRedundantLineInfoElimPass()
892 return MakeUnique<Optimizer::PassToken::Impl>(MakeUnique<opt::EmptyPass>()); in CreateRedundantLineInfoElimPass()
895 Optimizer::PassToken CreateCompactIdsPass() { in CreateCompactIdsPass()
896 return MakeUnique<Optimizer::PassToken::Impl>( in CreateCompactIdsPass()
900 Optimizer::PassToken CreateMergeReturnPass() { in CreateMergeReturnPass()
901 return MakeUnique<Optimizer::PassToken::Impl>( in CreateMergeReturnPass()
905 std::vector<const char*> Optimizer::GetPassNames() const { in GetPassNames()
913 Optimizer::PassToken CreateCFGCleanupPass() { in CreateCFGCleanupPass()
914 return MakeUnique<Optimizer::PassToken::Impl>( in CreateCFGCleanupPass()
918 Optimizer::PassToken CreateLocalRedundancyEliminationPass() { in CreateLocalRedundancyEliminationPass()
919 return MakeUnique<Optimizer::PassToken::Impl>( in CreateLocalRedundancyEliminationPass()
923 Optimizer::PassToken CreateLoopFissionPass(size_t threshold) { in CreateLoopFissionPass()
924 return MakeUnique<Optimizer::PassToken::Impl>( in CreateLoopFissionPass()
928 Optimizer::PassToken CreateLoopFusionPass(size_t max_registers_per_loop) { in CreateLoopFusionPass()
929 return MakeUnique<Optimizer::PassToken::Impl>( in CreateLoopFusionPass()
933 Optimizer::PassToken CreateLoopInvariantCodeMotionPass() { in CreateLoopInvariantCodeMotionPass()
934 return MakeUnique<Optimizer::PassToken::Impl>(MakeUnique<opt::LICMPass>()); in CreateLoopInvariantCodeMotionPass()
937 Optimizer::PassToken CreateLoopPeelingPass() { in CreateLoopPeelingPass()
938 return MakeUnique<Optimizer::PassToken::Impl>( in CreateLoopPeelingPass()
942 Optimizer::PassToken CreateLoopUnswitchPass() { in CreateLoopUnswitchPass()
943 return MakeUnique<Optimizer::PassToken::Impl>( in CreateLoopUnswitchPass()
947 Optimizer::PassToken CreateRedundancyEliminationPass() { in CreateRedundancyEliminationPass()
948 return MakeUnique<Optimizer::PassToken::Impl>( in CreateRedundancyEliminationPass()
952 Optimizer::PassToken CreateRemoveDuplicatesPass() { in CreateRemoveDuplicatesPass()
953 return MakeUnique<Optimizer::PassToken::Impl>( in CreateRemoveDuplicatesPass()
957 Optimizer::PassToken CreateScalarReplacementPass(uint32_t size_limit) { in CreateScalarReplacementPass()
958 return MakeUnique<Optimizer::PassToken::Impl>( in CreateScalarReplacementPass()
962 Optimizer::PassToken CreatePrivateToLocalPass() { in CreatePrivateToLocalPass()
963 return MakeUnique<Optimizer::PassToken::Impl>( in CreatePrivateToLocalPass()
967 Optimizer::PassToken CreateCCPPass() { in CreateCCPPass()
968 return MakeUnique<Optimizer::PassToken::Impl>(MakeUnique<opt::CCPPass>()); in CreateCCPPass()
971 Optimizer::PassToken CreateWorkaround1209Pass() { in CreateWorkaround1209Pass()
972 return MakeUnique<Optimizer::PassToken::Impl>( in CreateWorkaround1209Pass()
976 Optimizer::PassToken CreateIfConversionPass() { in CreateIfConversionPass()
977 return MakeUnique<Optimizer::PassToken::Impl>( in CreateIfConversionPass()
981 Optimizer::PassToken CreateReplaceInvalidOpcodePass() { in CreateReplaceInvalidOpcodePass()
982 return MakeUnique<Optimizer::PassToken::Impl>( in CreateReplaceInvalidOpcodePass()
986 Optimizer::PassToken CreateSimplificationPass() { in CreateSimplificationPass()
987 return MakeUnique<Optimizer::PassToken::Impl>( in CreateSimplificationPass()
991 Optimizer::PassToken CreateLoopUnrollPass(bool fully_unroll, int factor) { in CreateLoopUnrollPass()
992 return MakeUnique<Optimizer::PassToken::Impl>( in CreateLoopUnrollPass()
996 Optimizer::PassToken CreateSSARewritePass() { in CreateSSARewritePass()
997 return MakeUnique<Optimizer::PassToken::Impl>( in CreateSSARewritePass()
1001 Optimizer::PassToken CreateCopyPropagateArraysPass() { in CreateCopyPropagateArraysPass()
1002 return MakeUnique<Optimizer::PassToken::Impl>( in CreateCopyPropagateArraysPass()
1006 Optimizer::PassToken CreateVectorDCEPass() { in CreateVectorDCEPass()
1007 return MakeUnique<Optimizer::PassToken::Impl>(MakeUnique<opt::VectorDCE>()); in CreateVectorDCEPass()
1010 Optimizer::PassToken CreateReduceLoadSizePass( in CreateReduceLoadSizePass()
1012 return MakeUnique<Optimizer::PassToken::Impl>( in CreateReduceLoadSizePass()
1016 Optimizer::PassToken CreateCombineAccessChainsPass() { in CreateCombineAccessChainsPass()
1017 return MakeUnique<Optimizer::PassToken::Impl>( in CreateCombineAccessChainsPass()
1021 Optimizer::PassToken CreateUpgradeMemoryModelPass() { in CreateUpgradeMemoryModelPass()
1022 return MakeUnique<Optimizer::PassToken::Impl>( in CreateUpgradeMemoryModelPass()
1026 Optimizer::PassToken CreateInstBindlessCheckPass(uint32_t shader_id) { in CreateInstBindlessCheckPass()
1027 return MakeUnique<Optimizer::PassToken::Impl>( in CreateInstBindlessCheckPass()
1031 Optimizer::PassToken CreateInstDebugPrintfPass(uint32_t desc_set, in CreateInstDebugPrintfPass()
1033 return MakeUnique<Optimizer::PassToken::Impl>( in CreateInstDebugPrintfPass()
1037 Optimizer::PassToken CreateInstBuffAddrCheckPass(uint32_t shader_id) { in CreateInstBuffAddrCheckPass()
1038 return MakeUnique<Optimizer::PassToken::Impl>( in CreateInstBuffAddrCheckPass()
1042 Optimizer::PassToken CreateConvertRelaxedToHalfPass() { in CreateConvertRelaxedToHalfPass()
1043 return MakeUnique<Optimizer::PassToken::Impl>( in CreateConvertRelaxedToHalfPass()
1047 Optimizer::PassToken CreateRelaxFloatOpsPass() { in CreateRelaxFloatOpsPass()
1048 return MakeUnique<Optimizer::PassToken::Impl>( in CreateRelaxFloatOpsPass()
1052 Optimizer::PassToken CreateCodeSinkingPass() { in CreateCodeSinkingPass()
1053 return MakeUnique<Optimizer::PassToken::Impl>( in CreateCodeSinkingPass()
1057 Optimizer::PassToken CreateFixStorageClassPass() { in CreateFixStorageClassPass()
1058 return MakeUnique<Optimizer::PassToken::Impl>( in CreateFixStorageClassPass()
1062 Optimizer::PassToken CreateGraphicsRobustAccessPass() { in CreateGraphicsRobustAccessPass()
1063 return MakeUnique<Optimizer::PassToken::Impl>( in CreateGraphicsRobustAccessPass()
1067 Optimizer::PassToken CreateReplaceDescArrayAccessUsingVarIndexPass() { in CreateReplaceDescArrayAccessUsingVarIndexPass()
1068 return MakeUnique<Optimizer::PassToken::Impl>( in CreateReplaceDescArrayAccessUsingVarIndexPass()
1072 Optimizer::PassToken CreateSpreadVolatileSemanticsPass() { in CreateSpreadVolatileSemanticsPass()
1073 return MakeUnique<Optimizer::PassToken::Impl>( in CreateSpreadVolatileSemanticsPass()
1077 Optimizer::PassToken CreateDescriptorScalarReplacementPass() { in CreateDescriptorScalarReplacementPass()
1078 return MakeUnique<Optimizer::PassToken::Impl>( in CreateDescriptorScalarReplacementPass()
1082 Optimizer::PassToken CreateWrapOpKillPass() { in CreateWrapOpKillPass()
1083 return MakeUnique<Optimizer::PassToken::Impl>(MakeUnique<opt::WrapOpKill>()); in CreateWrapOpKillPass()
1086 Optimizer::PassToken CreateAmdExtToKhrPass() { in CreateAmdExtToKhrPass()
1087 return MakeUnique<Optimizer::PassToken::Impl>( in CreateAmdExtToKhrPass()
1091 Optimizer::PassToken CreateInterpolateFixupPass() { in CreateInterpolateFixupPass()
1092 return MakeUnique<Optimizer::PassToken::Impl>( in CreateInterpolateFixupPass()
1096 Optimizer::PassToken CreateEliminateDeadInputComponentsPass() { in CreateEliminateDeadInputComponentsPass()
1097 return MakeUnique<Optimizer::PassToken::Impl>( in CreateEliminateDeadInputComponentsPass()
1102 Optimizer::PassToken CreateEliminateDeadOutputComponentsPass() { in CreateEliminateDeadOutputComponentsPass()
1103 return MakeUnique<Optimizer::PassToken::Impl>( in CreateEliminateDeadOutputComponentsPass()
1108 Optimizer::PassToken CreateEliminateDeadInputComponentsSafePass() { in CreateEliminateDeadInputComponentsSafePass()
1109 return MakeUnique<Optimizer::PassToken::Impl>( in CreateEliminateDeadInputComponentsSafePass()
1114 Optimizer::PassToken CreateAnalyzeLiveInputPass( in CreateAnalyzeLiveInputPass()
1117 return MakeUnique<Optimizer::PassToken::Impl>( in CreateAnalyzeLiveInputPass()
1121 Optimizer::PassToken CreateEliminateDeadOutputStoresPass( in CreateEliminateDeadOutputStoresPass()
1124 return MakeUnique<Optimizer::PassToken::Impl>( in CreateEliminateDeadOutputStoresPass()
1128 Optimizer::PassToken CreateConvertToSampledImagePass( in CreateConvertToSampledImagePass()
1131 return MakeUnique<Optimizer::PassToken::Impl>( in CreateConvertToSampledImagePass()
1135 Optimizer::PassToken CreateInterfaceVariableScalarReplacementPass() { in CreateInterfaceVariableScalarReplacementPass()
1136 return MakeUnique<Optimizer::PassToken::Impl>( in CreateInterfaceVariableScalarReplacementPass()
1140 Optimizer::PassToken CreateRemoveDontInlinePass() { in CreateRemoveDontInlinePass()
1141 return MakeUnique<Optimizer::PassToken::Impl>( in CreateRemoveDontInlinePass()
1145 Optimizer::PassToken CreateFixFuncCallArgumentsPass() { in CreateFixFuncCallArgumentsPass()
1146 return MakeUnique<Optimizer::PassToken::Impl>( in CreateFixFuncCallArgumentsPass()
1150 Optimizer::PassToken CreateTrimCapabilitiesPass() { in CreateTrimCapabilitiesPass()
1151 return MakeUnique<Optimizer::PassToken::Impl>( in CreateTrimCapabilitiesPass()
1155 Optimizer::PassToken CreateSwitchDescriptorSetPass(uint32_t from, uint32_t to) { in CreateSwitchDescriptorSetPass()
1156 return MakeUnique<Optimizer::PassToken::Impl>( in CreateSwitchDescriptorSetPass()
1160 Optimizer::PassToken CreateInvocationInterlockPlacementPass() { in CreateInvocationInterlockPlacementPass()
1161 return MakeUnique<Optimizer::PassToken::Impl>( in CreateInvocationInterlockPlacementPass()
1165 Optimizer::PassToken CreateModifyMaximalReconvergencePass(bool add) { in CreateModifyMaximalReconvergencePass()
1166 return MakeUnique<Optimizer::PassToken::Impl>( in CreateModifyMaximalReconvergencePass()
1174 return reinterpret_cast<spv_optimizer_t*>(new spvtools::Optimizer(env)); in spvOptimizerCreate()
1177 SPIRV_TOOLS_EXPORT void spvOptimizerDestroy(spv_optimizer_t* optimizer) { in spvOptimizerDestroy() argument
1178 delete reinterpret_cast<spvtools::Optimizer*>(optimizer); in spvOptimizerDestroy()
1182 spv_optimizer_t* optimizer, spv_message_consumer consumer) { in spvOptimizerSetMessageConsumer() argument
1183 reinterpret_cast<spvtools::Optimizer*>(optimizer)-> in spvOptimizerSetMessageConsumer()
1192 spv_optimizer_t* optimizer) { in spvOptimizerRegisterLegalizationPasses() argument
1193 reinterpret_cast<spvtools::Optimizer*>(optimizer)-> in spvOptimizerRegisterLegalizationPasses()
1198 spv_optimizer_t* optimizer) { in spvOptimizerRegisterPerformancePasses() argument
1199 reinterpret_cast<spvtools::Optimizer*>(optimizer)-> in spvOptimizerRegisterPerformancePasses()
1204 spv_optimizer_t* optimizer) { in spvOptimizerRegisterSizePasses() argument
1205 reinterpret_cast<spvtools::Optimizer*>(optimizer)->RegisterSizePasses(); in spvOptimizerRegisterSizePasses()
1209 spv_optimizer_t* optimizer, const char* flag) in spvOptimizerRegisterPassFromFlag() argument
1211 return reinterpret_cast<spvtools::Optimizer*>(optimizer)-> in spvOptimizerRegisterPassFromFlag()
1216 spv_optimizer_t* optimizer, const char** flags, const size_t flag_count) { in spvOptimizerRegisterPassesFromFlags() argument
1219 return reinterpret_cast<spvtools::Optimizer*>(optimizer) in spvOptimizerRegisterPassesFromFlags()
1225 spv_optimizer_t* optimizer, const char** flags, const size_t flag_count) { in spvOptimizerRegisterPassesFromFlagsWhilePreservingTheInterface() argument
1228 return reinterpret_cast<spvtools::Optimizer*>(optimizer) in spvOptimizerRegisterPassesFromFlagsWhilePreservingTheInterface()
1233 spv_result_t spvOptimizerRun(spv_optimizer_t* optimizer, in spvOptimizerRun() argument
1240 if (!reinterpret_cast<spvtools::Optimizer*>(optimizer)-> in spvOptimizerRun()