diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 50821b8d8a2bc2e9b199304bb99d8cec970a491e..d4eaa9021328684bc5cf662553d514f21ad04f0c 100644 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -6752,19 +6752,24 @@ void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector<unsign << std::endl; }); + optimizer.RegisterPass(CreateMergeReturnPass()); optimizer.RegisterPass(CreateInlineExhaustivePass()); optimizer.RegisterPass(CreateEliminateDeadFunctionsPass()); optimizer.RegisterPass(CreateScalarReplacementPass()); optimizer.RegisterPass(CreateLocalAccessChainConvertPass()); optimizer.RegisterPass(CreateLocalSingleBlockLoadStoreElimPass()); optimizer.RegisterPass(CreateLocalSingleStoreElimPass()); + optimizer.RegisterPass(CreateAggressiveDCEPass()); optimizer.RegisterPass(CreateInsertExtractElimPass()); optimizer.RegisterPass(CreateDeadInsertElimPass()); optimizer.RegisterPass(CreateAggressiveDCEPass()); + optimizer.RegisterPass(CreateCCPPass()); + optimizer.RegisterPass(CreateSimplificationPass()); optimizer.RegisterPass(CreateDeadBranchElimPass()); optimizer.RegisterPass(CreateCFGCleanupPass()); optimizer.RegisterPass(CreateBlockMergePass()); optimizer.RegisterPass(CreateLocalMultiStoreElimPass()); + optimizer.RegisterPass(CreateAggressiveDCEPass()); optimizer.RegisterPass(CreateInsertExtractElimPass()); optimizer.RegisterPass(CreateDeadInsertElimPass()); if (options->optimizeSize) { diff --git a/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out b/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out index 573f2689e876b54536cfcb33b07d26a69bb60eaf..e3568e5a934e5340d7a7021414a0fd4786a65e29 100644 --- a/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out +++ b/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out @@ -2,7 +2,7 @@ hlsl.flattenOpaqueInitMix.vert WARNING: AST will form illegal SPIR-V; need to transform to legalize // Module Version 10000 // Generated by (magic number): 80006 -// Id's are bound by 80 +// Id's are bound by 97 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -32,13 +32,13 @@ WARNING: AST will form illegal SPIR-V; need to transform to legalize 49: 7(float) Constant 1056964608 56: TypePointer Output 11(fvec4) 57(@entryPointOutput): 56(ptr) Variable Output + 96: 36(fvec2) ConstantComposite 49 49 4(main): 2 Function None 3 5: Label 63: 6 Load 44(g_tInputTexture_sampler) 64: 8 Load 47(g_tInputTexture) 73: 28 SampledImage 64 63 - 78: 36(fvec2) CompositeConstruct 49 49 - 79: 11(fvec4) ImageSampleExplicitLod 73 78 Lod 38 + 79: 11(fvec4) ImageSampleExplicitLod 73 96 Lod 38 Store 57(@entryPointOutput) 79 Return FunctionEnd diff --git a/known_good.json b/known_good.json index 01b370ec2cef11e718e356251f3de9e3ee9e9525..1e3bbde5e0b0e434e985987acd730c24636d7559 100644 --- a/known_good.json +++ b/known_good.json @@ -5,7 +5,7 @@ "site" : "github", "subrepo" : "KhronosGroup/SPIRV-Tools", "subdir" : "External/spirv-tools", - "commit" : "8d8a71278bf9e83dd0fb30d5474386d30870b74d" + "commit" : "2e644e45785bb221294c32bf02a4ac867de49dc4" }, { "name" : "spirv-tools/external/spirv-headers",