From f5ebfb5f27213ff25608534eb958ae4fc58aed2f Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 20 Sep 2013 06:20:21 +0000 Subject: [PATCH] Test for and prevent any dead-code elimination, as all code is needed in the AST for static-use analysis. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23163 e7fa87d3-cd2b-0410-9028-fcbf551c1848 --- Install/Windows/glslangValidator.exe | Bin 332288 -> 332288 bytes Test/baseResults/dce.frag.out | 116 ++++++++++++++++++++ Test/baseResults/precision.frag.out | 14 ++- Test/baseResults/uint.frag.out | 91 +++++++++++---- Test/dce.frag | 56 ++++++++++ Test/testlist | 1 + Todo.txt | 2 +- glslang/MachineIndependent/Intermediate.cpp | 11 +- 8 files changed, 255 insertions(+), 36 deletions(-) create mode 100644 Test/baseResults/dce.frag.out create mode 100644 Test/dce.frag diff --git a/Install/Windows/glslangValidator.exe b/Install/Windows/glslangValidator.exe index 5d8b6c8aaf75aec95089544737daee7a0df90c99..35f1078b1c8914659dca919c700fbf723d35f123 100644 GIT binary patch delta 60172 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


R%T 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 4) { + return 4; + ++c; // should still show up in AST + } + + return 5; + + ++c; // should still show up in AST +} diff --git a/Test/testlist b/Test/testlist index 223e751c..ef826951 100644 --- a/Test/testlist +++ b/Test/testlist @@ -49,6 +49,7 @@ numeral.frag 400.tese 420.tese 430.comp +dce.frag ../../LunarGLASS/test/aggOps.frag ../../LunarGLASS/test/always-discard.frag ../../LunarGLASS/test/always-discard2.frag diff --git a/Todo.txt b/Todo.txt index 75f2c3ea..4d4360b1 100644 --- a/Todo.txt +++ b/Todo.txt @@ -3,7 +3,7 @@ Current functionality level: ESSL 3.0 Link Validation + provide input config file for setting limits - also consider spitting out measures of complexity - - ensure no static references thrown away + + ensure no static references thrown away Cross-stage linking - type consistency check of uniform and ins <-> outs, both variables and blocks, stage-specific arrayness matching - location/binding/index check diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index a4847422..62c93a4b 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -688,16 +688,9 @@ TIntermAggregate* TIntermediate::makeAggregate(TIntermNode* node, TSourceLoc loc TIntermNode* TIntermediate::addSelection(TIntermTyped* cond, TIntermNodePair nodePair, TSourceLoc loc) { // - // For compile time constant selections, prune the code and - // test now. + // Don't prune the false path for compile-time constants; it's needed + // for static access analysis. // - - if (cond->getAsTyped() && cond->getAsTyped()->getAsConstantUnion()) { - if (cond->getAsTyped()->getAsConstantUnion()->getUnionArrayPointer()->getBConst()) - return nodePair.node1; - else - return nodePair.node2; - } TIntermSelection* node = new TIntermSelection(cond, nodePair.node1, nodePair.node2); node->setLoc(loc);