Lines Matching refs:Optimizer

36 struct Optimizer::PassToken::Impl {
42 Optimizer::PassToken::PassToken(
43 std::unique_ptr<Optimizer::PassToken::Impl> impl)
46 Optimizer::PassToken::PassToken(std::unique_ptr<opt::Pass>&& pass)
47 : impl_(MakeUnique<Optimizer::PassToken::Impl>(std::move(pass))) {}
49 Optimizer::PassToken::PassToken(PassToken&& that)
52 Optimizer::PassToken& Optimizer::PassToken::operator=(PassToken&& that) {
57 Optimizer::PassToken::~PassToken() {}
59 struct Optimizer::Impl {
67 Optimizer::Optimizer(spv_target_env env) : impl_(new Impl(env)) {
71 Optimizer::~Optimizer() {}
73 void Optimizer::SetMessageConsumer(MessageConsumer c) {
81 const MessageConsumer& Optimizer::consumer() const {
85 Optimizer& Optimizer::RegisterPass(PassToken&& p) {
113 Optimizer& Optimizer::RegisterLegalizationPasses(bool preserve_interface) {
165 Optimizer& Optimizer::RegisterLegalizationPasses() {
169 Optimizer& Optimizer::RegisterPerformancePasses(bool preserve_interface) {
216 Optimizer& Optimizer::RegisterPerformancePasses() {
220 Optimizer& Optimizer::RegisterSizePasses(bool preserve_interface) {
256 Optimizer& Optimizer::RegisterSizePasses() { return RegisterSizePasses(false); }
258 bool Optimizer::RegisterPassesFromFlags(const std::vector<std::string>& flags) {
268 bool Optimizer::FlagHasValidForm(const std::string& flag) const {
283 bool Optimizer::RegisterPassFromFlag(const std::string& flag) {
600 void Optimizer::SetTargetEnv(const spv_target_env env) {
604 bool Optimizer::Run(const uint32_t* original_binary,
611 bool Optimizer::Run(const uint32_t* original_binary,
623 bool Optimizer::Run(const uint32_t* original_binary,
687 Optimizer& Optimizer::SetPrintAll(std::ostream* out) {
692 Optimizer& Optimizer::SetTimeReport(std::ostream* out) {
697 Optimizer& Optimizer::SetValidateAfterAll(bool validate) {
702 Optimizer::PassToken CreateNullPass() {
703 return MakeUnique<Optimizer::PassToken::Impl>(MakeUnique<opt::NullPass>());
706 Optimizer::PassToken CreateStripDebugInfoPass() {
707 return MakeUnique<Optimizer::PassToken::Impl>(
711 Optimizer::PassToken CreateStripReflectInfoPass() {
715 Optimizer::PassToken CreateStripNonSemanticInfoPass() {
716 return MakeUnique<Optimizer::PassToken::Impl>(
720 Optimizer::PassToken CreateEliminateDeadFunctionsPass() {
721 return MakeUnique<Optimizer::PassToken::Impl>(
725 Optimizer::PassToken CreateEliminateDeadMembersPass() {
726 return MakeUnique<Optimizer::PassToken::Impl>(
730 Optimizer::PassToken CreateSetSpecConstantDefaultValuePass(
732 return MakeUnique<Optimizer::PassToken::Impl>(
736 Optimizer::PassToken CreateSetSpecConstantDefaultValuePass(
738 return MakeUnique<Optimizer::PassToken::Impl>(
742 Optimizer::PassToken CreateFlattenDecorationPass() {
743 return MakeUnique<Optimizer::PassToken::Impl>(
747 Optimizer::PassToken CreateFreezeSpecConstantValuePass() {
748 return MakeUnique<Optimizer::PassToken::Impl>(
752 Optimizer::PassToken CreateFoldSpecConstantOpAndCompositePass() {
753 return MakeUnique<Optimizer::PassToken::Impl>(
757 Optimizer::PassToken CreateUnifyConstantPass() {
758 return MakeUnique<Optimizer::PassToken::Impl>(
762 Optimizer::PassToken CreateEliminateDeadConstantPass() {
763 return MakeUnique<Optimizer::PassToken::Impl>(
767 Optimizer::PassToken CreateDeadVariableEliminationPass() {
768 return MakeUnique<Optimizer::PassToken::Impl>(
772 Optimizer::PassToken CreateStrengthReductionPass() {
773 return MakeUnique<Optimizer::PassToken::Impl>(
777 Optimizer::PassToken CreateBlockMergePass() {
778 return MakeUnique<Optimizer::PassToken::Impl>(
782 Optimizer::PassToken CreateInlineExhaustivePass() {
783 return MakeUnique<Optimizer::PassToken::Impl>(
787 Optimizer::PassToken CreateInlineOpaquePass() {
788 return MakeUnique<Optimizer::PassToken::Impl>(
792 Optimizer::PassToken CreateLocalAccessChainConvertPass() {
793 return MakeUnique<Optimizer::PassToken::Impl>(
797 Optimizer::PassToken CreateLocalSingleBlockLoadStoreElimPass() {
798 return MakeUnique<Optimizer::PassToken::Impl>(
802 Optimizer::PassToken CreateLocalSingleStoreElimPass() {
803 return MakeUnique<Optimizer::PassToken::Impl>(
807 Optimizer::PassToken CreateInsertExtractElimPass() {
808 return MakeUnique<Optimizer::PassToken::Impl>(
812 Optimizer::PassToken CreateDeadInsertElimPass() {
813 return MakeUnique<Optimizer::PassToken::Impl>(
817 Optimizer::PassToken CreateDeadBranchElimPass() {
818 return MakeUnique<Optimizer::PassToken::Impl>(
822 Optimizer::PassToken CreateLocalMultiStoreElimPass() {
823 return MakeUnique<Optimizer::PassToken::Impl>(
827 Optimizer::PassToken CreateAggressiveDCEPass() {
828 return MakeUnique<Optimizer::PassToken::Impl>(
832 Optimizer::PassToken CreateAggressiveDCEPass(bool preserve_interface) {
833 return MakeUnique<Optimizer::PassToken::Impl>(
837 Optimizer::PassToken CreateAggressiveDCEPass(bool preserve_interface,
839 return MakeUnique<Optimizer::PassToken::Impl>(
843 Optimizer::PassToken CreateRemoveUnusedInterfaceVariablesPass() {
844 return MakeUnique<Optimizer::PassToken::Impl>(
848 Optimizer::PassToken CreatePropagateLineInfoPass() {
849 return MakeUnique<Optimizer::PassToken::Impl>(MakeUnique<opt::EmptyPass>());
852 Optimizer::PassToken CreateRedundantLineInfoElimPass() {
853 return MakeUnique<Optimizer::PassToken::Impl>(MakeUnique<opt::EmptyPass>());
856 Optimizer::PassToken CreateCompactIdsPass() {
857 return MakeUnique<Optimizer::PassToken::Impl>(
861 Optimizer::PassToken CreateMergeReturnPass() {
862 return MakeUnique<Optimizer::PassToken::Impl>(
866 std::vector<const char*> Optimizer::GetPassNames() const {
874 Optimizer::PassToken CreateCFGCleanupPass() {
875 return MakeUnique<Optimizer::PassToken::Impl>(
879 Optimizer::PassToken CreateLocalRedundancyEliminationPass() {
880 return MakeUnique<Optimizer::PassToken::Impl>(
884 Optimizer::PassToken CreateLoopFissionPass(size_t threshold) {
885 return MakeUnique<Optimizer::PassToken::Impl>(
889 Optimizer::PassToken CreateLoopFusionPass(size_t max_registers_per_loop) {
890 return MakeUnique<Optimizer::PassToken::Impl>(
894 Optimizer::PassToken CreateLoopInvariantCodeMotionPass() {
895 return MakeUnique<Optimizer::PassToken::Impl>(MakeUnique<opt::LICMPass>());
898 Optimizer::PassToken CreateLoopPeelingPass() {
899 return MakeUnique<Optimizer::PassToken::Impl>(
903 Optimizer::PassToken CreateLoopUnswitchPass() {
904 return MakeUnique<Optimizer::PassToken::Impl>(
908 Optimizer::PassToken CreateRedundancyEliminationPass() {
909 return MakeUnique<Optimizer::PassToken::Impl>(
913 Optimizer::PassToken CreateRemoveDuplicatesPass() {
914 return MakeUnique<Optimizer::PassToken::Impl>(
918 Optimizer::PassToken CreateScalarReplacementPass(uint32_t size_limit) {
919 return MakeUnique<Optimizer::PassToken::Impl>(
923 Optimizer::PassToken CreatePrivateToLocalPass() {
924 return MakeUnique<Optimizer::PassToken::Impl>(
928 Optimizer::PassToken CreateCCPPass() {
929 return MakeUnique<Optimizer::PassToken::Impl>(MakeUnique<opt::CCPPass>());
932 Optimizer::PassToken CreateWorkaround1209Pass() {
933 return MakeUnique<Optimizer::PassToken::Impl>(
937 Optimizer::PassToken CreateIfConversionPass() {
938 return MakeUnique<Optimizer::PassToken::Impl>(
942 Optimizer::PassToken CreateReplaceInvalidOpcodePass() {
943 return MakeUnique<Optimizer::PassToken::Impl>(
947 Optimizer::PassToken CreateSimplificationPass() {
948 return MakeUnique<Optimizer::PassToken::Impl>(
952 Optimizer::PassToken CreateLoopUnrollPass(bool fully_unroll, int factor) {
953 return MakeUnique<Optimizer::PassToken::Impl>(
957 Optimizer::PassToken CreateSSARewritePass() {
958 return MakeUnique<Optimizer::PassToken::Impl>(
962 Optimizer::PassToken CreateCopyPropagateArraysPass() {
963 return MakeUnique<Optimizer::PassToken::Impl>(
967 Optimizer::PassToken CreateVectorDCEPass() {
968 return MakeUnique<Optimizer::PassToken::Impl>(MakeUnique<opt::VectorDCE>());
971 Optimizer::PassToken CreateReduceLoadSizePass(
973 return MakeUnique<Optimizer::PassToken::Impl>(
977 Optimizer::PassToken CreateCombineAccessChainsPass() {
978 return MakeUnique<Optimizer::PassToken::Impl>(
982 Optimizer::PassToken CreateUpgradeMemoryModelPass() {
983 return MakeUnique<Optimizer::PassToken::Impl>(
987 Optimizer::PassToken CreateInstBindlessCheckPass(uint32_t shader_id) {
988 return MakeUnique<Optimizer::PassToken::Impl>(
992 Optimizer::PassToken CreateInstDebugPrintfPass(uint32_t desc_set,
994 return MakeUnique<Optimizer::PassToken::Impl>(
998 Optimizer::PassToken CreateInstBuffAddrCheckPass(uint32_t shader_id) {
999 return MakeUnique<Optimizer::PassToken::Impl>(
1003 Optimizer::PassToken CreateConvertRelaxedToHalfPass() {
1004 return MakeUnique<Optimizer::PassToken::Impl>(
1008 Optimizer::PassToken CreateRelaxFloatOpsPass() {
1009 return MakeUnique<Optimizer::PassToken::Impl>(
1013 Optimizer::PassToken CreateCodeSinkingPass() {
1014 return MakeUnique<Optimizer::PassToken::Impl>(
1018 Optimizer::PassToken CreateFixStorageClassPass() {
1019 return MakeUnique<Optimizer::PassToken::Impl>(
1023 Optimizer::PassToken CreateGraphicsRobustAccessPass() {
1024 return MakeUnique<Optimizer::PassToken::Impl>(
1028 Optimizer::PassToken CreateReplaceDescArrayAccessUsingVarIndexPass() {
1029 return MakeUnique<Optimizer::PassToken::Impl>(
1033 Optimizer::PassToken CreateSpreadVolatileSemanticsPass() {
1034 return MakeUnique<Optimizer::PassToken::Impl>(
1038 Optimizer::PassToken CreateDescriptorScalarReplacementPass() {
1039 return MakeUnique<Optimizer::PassToken::Impl>(
1043 Optimizer::PassToken CreateWrapOpKillPass() {
1044 return MakeUnique<Optimizer::PassToken::Impl>(MakeUnique<opt::WrapOpKill>());
1047 Optimizer::PassToken CreateAmdExtToKhrPass() {
1048 return MakeUnique<Optimizer::PassToken::Impl>(
1052 Optimizer::PassToken CreateInterpolateFixupPass() {
1053 return MakeUnique<Optimizer::PassToken::Impl>(
1057 Optimizer::PassToken CreateEliminateDeadInputComponentsPass() {
1058 return MakeUnique<Optimizer::PassToken::Impl>(
1063 Optimizer::PassToken CreateEliminateDeadOutputComponentsPass() {
1064 return MakeUnique<Optimizer::PassToken::Impl>(
1069 Optimizer::PassToken CreateEliminateDeadInputComponentsSafePass() {
1070 return MakeUnique<Optimizer::PassToken::Impl>(
1075 Optimizer::PassToken CreateAnalyzeLiveInputPass(
1078 return MakeUnique<Optimizer::PassToken::Impl>(
1082 Optimizer::PassToken CreateEliminateDeadOutputStoresPass(
1085 return MakeUnique<Optimizer::PassToken::Impl>(
1089 Optimizer::PassToken CreateConvertToSampledImagePass(
1092 return MakeUnique<Optimizer::PassToken::Impl>(
1096 Optimizer::PassToken CreateInterfaceVariableScalarReplacementPass() {
1097 return MakeUnique<Optimizer::PassToken::Impl>(
1101 Optimizer::PassToken CreateRemoveDontInlinePass() {
1102 return MakeUnique<Optimizer::PassToken::Impl>(
1106 Optimizer::PassToken CreateFixFuncCallArgumentsPass() {
1107 return MakeUnique<Optimizer::PassToken::Impl>(
1111 Optimizer::PassToken CreateTrimCapabilitiesPass() {
1112 return MakeUnique<Optimizer::PassToken::Impl>(
1116 Optimizer::PassToken CreateSwitchDescriptorSetPass(uint32_t from, uint32_t to) {
1117 return MakeUnique<Optimizer::PassToken::Impl>(
1121 Optimizer::PassToken CreateInvocationInterlockPlacementPass() {
1122 return MakeUnique<Optimizer::PassToken::Impl>(
1130 return reinterpret_cast<spv_optimizer_t*>(new spvtools::Optimizer(env));
1134 delete reinterpret_cast<spvtools::Optimizer*>(optimizer);
1139 reinterpret_cast<spvtools::Optimizer*>(optimizer)->
1149 reinterpret_cast<spvtools::Optimizer*>(optimizer)->
1155 reinterpret_cast<spvtools::Optimizer*>(optimizer)->
1161 reinterpret_cast<spvtools::Optimizer*>(optimizer)->RegisterSizePasses();
1167 return reinterpret_cast<spvtools::Optimizer*>(optimizer)->
1178 return reinterpret_cast<spvtools::Optimizer*>(optimizer)->
1190 if (!reinterpret_cast<spvtools::Optimizer*>(optimizer)->