Commit 249cb200 by Shahbaz Youssefi Committed by Commit Bot

Translator: Rename TIntermInvariantDeclaration to ..GlobalQualifier..

This is to support the upcoming `precise` keyword. Bug: angleproject:3569 Change-Id: Idbcc8fd6f261757dbbf81b381e7a2dae938d8101 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1947451Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
parent a5045ac3
......@@ -4,11 +4,11 @@
"src/compiler/translator/glslang.l":
"75adc098def35a464dfb5ca1a0e99799",
"src/compiler/translator/glslang.y":
"e32a1376309bd63368e45a968362d375",
"7b6b24685a467cbb7f50dc62176c2fef",
"src/compiler/translator/glslang_lex_autogen.cpp":
"5f55ca207583009489d136e47c71beb5",
"src/compiler/translator/glslang_tab_autogen.cpp":
"ce4d6a80cebfee9b0c28ebfd51287fea",
"050bddb6103769b9e55f7fe62972ac86",
"src/compiler/translator/glslang_tab_autogen.h":
"4133ae84a4c17051cf114f404fea0046",
"tools/flex-bison/linux/bison.sha1":
......
......@@ -117,7 +117,8 @@ class CollectVariablesTraverser : public TIntermTraverser
GLenum shaderType,
const TExtensionBehavior &extensionBehavior);
bool visitInvariantDeclaration(Visit visit, TIntermInvariantDeclaration *node) override;
bool visitGlobalQualifierDeclaration(Visit visit,
TIntermGlobalQualifierDeclaration *node) override;
void visitSymbol(TIntermSymbol *symbol) override;
bool visitDeclaration(Visit, TIntermDeclaration *node) override;
bool visitBinary(Visit visit, TIntermBinary *binaryNode) override;
......@@ -354,8 +355,9 @@ InterfaceBlock *CollectVariablesTraverser::recordGLInUsed(const TType &glInType)
}
}
bool CollectVariablesTraverser::visitInvariantDeclaration(Visit visit,
TIntermInvariantDeclaration *node)
bool CollectVariablesTraverser::visitGlobalQualifierDeclaration(
Visit visit,
TIntermGlobalQualifierDeclaration *node)
{
// We should not mark variables as active just based on an invariant declaration, so we don't
// traverse the symbols declared invariant.
......
......@@ -350,19 +350,20 @@ bool TIntermUnary::replaceChildNode(TIntermNode *original, TIntermNode *replacem
return false;
}
size_t TIntermInvariantDeclaration::getChildCount() const
size_t TIntermGlobalQualifierDeclaration::getChildCount() const
{
return 1;
}
TIntermNode *TIntermInvariantDeclaration::getChildNode(size_t index) const
TIntermNode *TIntermGlobalQualifierDeclaration::getChildNode(size_t index) const
{
ASSERT(mSymbol);
ASSERT(index == 0);
return mSymbol;
}
bool TIntermInvariantDeclaration::replaceChildNode(TIntermNode *original, TIntermNode *replacement)
bool TIntermGlobalQualifierDeclaration::replaceChildNode(TIntermNode *original,
TIntermNode *replacement)
{
REPLACE_IF_IS(mSymbol, TIntermSymbol, original, replacement);
return false;
......@@ -1332,17 +1333,18 @@ TIntermBinary *TIntermBinary::CreateComma(TIntermTyped *left,
return node;
}
TIntermInvariantDeclaration::TIntermInvariantDeclaration(TIntermSymbol *symbol,
const TSourceLoc &line)
TIntermGlobalQualifierDeclaration::TIntermGlobalQualifierDeclaration(TIntermSymbol *symbol,
const TSourceLoc &line)
: TIntermNode(), mSymbol(symbol)
{
ASSERT(symbol);
setLine(line);
}
TIntermInvariantDeclaration::TIntermInvariantDeclaration(const TIntermInvariantDeclaration &node)
: TIntermInvariantDeclaration(static_cast<TIntermSymbol *>(node.mSymbol->deepCopy()),
node.mLine)
TIntermGlobalQualifierDeclaration::TIntermGlobalQualifierDeclaration(
const TIntermGlobalQualifierDeclaration &node)
: TIntermGlobalQualifierDeclaration(static_cast<TIntermSymbol *>(node.mSymbol->deepCopy()),
node.mLine)
{}
TIntermTernary::TIntermTernary(TIntermTyped *cond,
......
......@@ -38,7 +38,7 @@ class TDiagnostics;
class TIntermTraverser;
class TIntermAggregate;
class TIntermBlock;
class TIntermInvariantDeclaration;
class TIntermGlobalQualifierDeclaration;
class TIntermDeclaration;
class TIntermFunctionPrototype;
class TIntermFunctionDefinition;
......@@ -90,7 +90,10 @@ class TIntermNode : angle::NonCopyable
virtual TIntermAggregate *getAsAggregate() { return nullptr; }
virtual TIntermBlock *getAsBlock() { return nullptr; }
virtual TIntermFunctionPrototype *getAsFunctionPrototypeNode() { return nullptr; }
virtual TIntermInvariantDeclaration *getAsInvariantDeclarationNode() { return nullptr; }
virtual TIntermGlobalQualifierDeclaration *getAsGlobalQualifierDeclarationNode()
{
return nullptr;
}
virtual TIntermDeclaration *getAsDeclarationNode() { return nullptr; }
virtual TIntermSwizzle *getAsSwizzleNode() { return nullptr; }
virtual TIntermBinary *getAsBinaryNode() { return nullptr; }
......@@ -801,12 +804,15 @@ class TIntermDeclaration : public TIntermNode, public TIntermAggregateBase
};
// Specialized declarations for attributing invariance.
class TIntermInvariantDeclaration : public TIntermNode
class TIntermGlobalQualifierDeclaration : public TIntermNode
{
public:
TIntermInvariantDeclaration(TIntermSymbol *symbol, const TSourceLoc &line);
TIntermGlobalQualifierDeclaration(TIntermSymbol *symbol, const TSourceLoc &line);
virtual TIntermInvariantDeclaration *getAsInvariantDeclarationNode() override { return this; }
virtual TIntermGlobalQualifierDeclaration *getAsGlobalQualifierDeclarationNode() override
{
return this;
}
bool visit(Visit visit, TIntermTraverser *it) final;
TIntermSymbol *getSymbol() { return mSymbol; }
......@@ -815,15 +821,15 @@ class TIntermInvariantDeclaration : public TIntermNode
TIntermNode *getChildNode(size_t index) const final;
bool replaceChildNode(TIntermNode *original, TIntermNode *replacement) override;
TIntermInvariantDeclaration *deepCopy() const override
TIntermGlobalQualifierDeclaration *deepCopy() const override
{
return new TIntermInvariantDeclaration(*this);
return new TIntermGlobalQualifierDeclaration(*this);
}
private:
TIntermSymbol *mSymbol;
TIntermInvariantDeclaration(const TIntermInvariantDeclaration &);
TIntermGlobalQualifierDeclaration(const TIntermGlobalQualifierDeclaration &);
};
// For ternary operators like a ? b : c.
......
......@@ -952,7 +952,8 @@ bool TOutputGLSLBase::visitFunctionDefinition(Visit visit, TIntermFunctionDefini
return false;
}
bool TOutputGLSLBase::visitInvariantDeclaration(Visit visit, TIntermInvariantDeclaration *node)
bool TOutputGLSLBase::visitGlobalQualifierDeclaration(Visit visit,
TIntermGlobalQualifierDeclaration *node)
{
TInfoSinkBase &out = objSink();
ASSERT(visit == PreVisit);
......
......@@ -65,7 +65,8 @@ class TOutputGLSLBase : public TIntermTraverser
bool visitFunctionDefinition(Visit visit, TIntermFunctionDefinition *node) override;
bool visitAggregate(Visit visit, TIntermAggregate *node) override;
bool visitBlock(Visit visit, TIntermBlock *node) override;
bool visitInvariantDeclaration(Visit visit, TIntermInvariantDeclaration *node) override;
bool visitGlobalQualifierDeclaration(Visit visit,
TIntermGlobalQualifierDeclaration *node) override;
bool visitDeclaration(Visit visit, TIntermDeclaration *node) override;
bool visitLoop(Visit visit, TIntermLoop *node) override;
bool visitBranch(Visit visit, TIntermBranch *node) override;
......
......@@ -2087,7 +2087,7 @@ bool OutputHLSL::visitBlock(Visit visit, TIntermBlock *node)
statement->getAsFunctionDefinition() == nullptr &&
(statement->getAsDeclarationNode() == nullptr ||
IsDeclarationWrittenOut(statement->getAsDeclarationNode())) &&
statement->getAsInvariantDeclarationNode() == nullptr)
statement->getAsGlobalQualifierDeclarationNode() == nullptr)
{
out << ";\n";
}
......@@ -2266,7 +2266,8 @@ bool OutputHLSL::visitDeclaration(Visit visit, TIntermDeclaration *node)
return false;
}
bool OutputHLSL::visitInvariantDeclaration(Visit visit, TIntermInvariantDeclaration *node)
bool OutputHLSL::visitGlobalQualifierDeclaration(Visit visit,
TIntermGlobalQualifierDeclaration *node)
{
// Do not do any translation
return false;
......
......@@ -100,7 +100,8 @@ class OutputHLSL : public TIntermTraverser
bool visitFunctionDefinition(Visit visit, TIntermFunctionDefinition *node) override;
bool visitAggregate(Visit visit, TIntermAggregate *) override;
bool visitBlock(Visit visit, TIntermBlock *node) override;
bool visitInvariantDeclaration(Visit visit, TIntermInvariantDeclaration *node) override;
bool visitGlobalQualifierDeclaration(Visit visit,
TIntermGlobalQualifierDeclaration *node) override;
bool visitDeclaration(Visit visit, TIntermDeclaration *node) override;
bool visitLoop(Visit visit, TIntermLoop *) override;
bool visitBranch(Visit visit, TIntermBranch *) override;
......
......@@ -49,7 +49,8 @@ class TOutputTraverser : public TIntermTraverser
bool visitFunctionDefinition(Visit visit, TIntermFunctionDefinition *node) override;
bool visitAggregate(Visit visit, TIntermAggregate *) override;
bool visitBlock(Visit visit, TIntermBlock *) override;
bool visitInvariantDeclaration(Visit visit, TIntermInvariantDeclaration *node) override;
bool visitGlobalQualifierDeclaration(Visit visit,
TIntermGlobalQualifierDeclaration *node) override;
bool visitDeclaration(Visit visit, TIntermDeclaration *node) override;
bool visitLoop(Visit visit, TIntermLoop *) override;
bool visitBranch(Visit visit, TIntermBranch *) override;
......@@ -358,7 +359,8 @@ bool TOutputTraverser::visitFunctionDefinition(Visit visit, TIntermFunctionDefin
return true;
}
bool TOutputTraverser::visitInvariantDeclaration(Visit visit, TIntermInvariantDeclaration *node)
bool TOutputTraverser::visitGlobalQualifierDeclaration(Visit visit,
TIntermGlobalQualifierDeclaration *node)
{
OutputTreeText(mOut, node, getCurrentIndentDepth());
mOut << "Invariant Declaration:\n";
......
......@@ -29,7 +29,8 @@ class TOutputVulkanGLSLForMetal : public TOutputVulkanGLSL
static void RemoveInvariantForTest(bool remove);
protected:
bool visitInvariantDeclaration(Visit visit, TIntermInvariantDeclaration *node) override;
bool visitGlobalQualifierDeclaration(Visit visit,
TIntermGlobalQualifierDeclaration *node) override;
void writeVariableType(const TType &type, const TSymbol *symbol) override;
};
......
......@@ -87,8 +87,9 @@ void TOutputVulkanGLSLForMetal::writeVariableType(const TType &type, const TSymb
TOutputVulkanGLSL::writeVariableType(overrideType, symbol);
}
bool TOutputVulkanGLSLForMetal::visitInvariantDeclaration(Visit visit,
TIntermInvariantDeclaration *node)
bool TOutputVulkanGLSLForMetal::visitGlobalQualifierDeclaration(
Visit visit,
TIntermGlobalQualifierDeclaration *node)
{
TInfoSinkBase &out = objSink();
ASSERT(visit == PreVisit);
......
......@@ -2645,7 +2645,7 @@ TIntermDeclaration *TParseContext::parseSingleArrayInitDeclaration(
return declaration;
}
TIntermInvariantDeclaration *TParseContext::parseInvariantDeclaration(
TIntermGlobalQualifierDeclaration *TParseContext::parseGlobalQualifierDeclaration(
const TTypeQualifierBuilder &typeQualifierBuilder,
const TSourceLoc &identifierLoc,
const ImmutableString &identifier,
......@@ -2698,7 +2698,7 @@ TIntermInvariantDeclaration *TParseContext::parseInvariantDeclaration(
TIntermSymbol *intermSymbol = new TIntermSymbol(variable);
intermSymbol->setLine(identifierLoc);
return new TIntermInvariantDeclaration(intermSymbol, identifierLoc);
return new TIntermGlobalQualifierDeclaration(intermSymbol, identifierLoc);
}
void TParseContext::parseDeclarator(TPublicType &publicType,
......
......@@ -248,7 +248,7 @@ class TParseContext : angle::NonCopyable
const TSourceLoc &initLocation,
TIntermTyped *initializer);
TIntermInvariantDeclaration *parseInvariantDeclaration(
TIntermGlobalQualifierDeclaration *parseGlobalQualifierDeclaration(
const TTypeQualifierBuilder &typeQualifierBuilder,
const TSourceLoc &identifierLoc,
const ImmutableString &identifier,
......
......@@ -35,7 +35,8 @@ class ValidateAST : public TIntermTraverser
bool visitFunctionDefinition(Visit visit, TIntermFunctionDefinition *node) override;
bool visitAggregate(Visit visit, TIntermAggregate *node) override;
bool visitBlock(Visit visit, TIntermBlock *node) override;
bool visitInvariantDeclaration(Visit visit, TIntermInvariantDeclaration *node) override;
bool visitGlobalQualifierDeclaration(Visit visit,
TIntermGlobalQualifierDeclaration *node) override;
bool visitDeclaration(Visit visit, TIntermDeclaration *node) override;
bool visitLoop(Visit visit, TIntermLoop *node) override;
bool visitBranch(Visit visit, TIntermBranch *node) override;
......@@ -206,7 +207,8 @@ bool ValidateAST::visitBlock(Visit visit, TIntermBlock *node)
return true;
}
bool ValidateAST::visitInvariantDeclaration(Visit visit, TIntermInvariantDeclaration *node)
bool ValidateAST::visitGlobalQualifierDeclaration(Visit visit,
TIntermGlobalQualifierDeclaration *node)
{
visitNode(visit, node);
return true;
......
......@@ -99,7 +99,7 @@ bool TVersionGLSL::visitDeclaration(Visit, TIntermDeclaration *node)
return true;
}
bool TVersionGLSL::visitInvariantDeclaration(Visit, TIntermInvariantDeclaration *node)
bool TVersionGLSL::visitGlobalQualifierDeclaration(Visit, TIntermGlobalQualifierDeclaration *node)
{
ensureVersionIsAtLeast(GLSL_VERSION_120);
return true;
......
......@@ -61,7 +61,7 @@ class TVersionGLSL : public TIntermTraverser
void visitSymbol(TIntermSymbol *node) override;
bool visitAggregate(Visit, TIntermAggregate *node) override;
bool visitInvariantDeclaration(Visit, TIntermInvariantDeclaration *node) override;
bool visitGlobalQualifierDeclaration(Visit, TIntermGlobalQualifierDeclaration *node) override;
void visitFunctionPrototype(TIntermFunctionPrototype *node) override;
bool visitDeclaration(Visit, TIntermDeclaration *node) override;
......
......@@ -624,7 +624,7 @@ declaration
}
| type_qualifier IDENTIFIER SEMICOLON // e.g. to qualify an existing variable as invariant
{
$$ = context->parseInvariantDeclaration(*$1, @2, ImmutableString($2.string), $2.symbol);
$$ = context->parseGlobalQualifierDeclaration(*$1, @2, ImmutableString($2.string), $2.symbol);
}
;
......
......@@ -3259,7 +3259,7 @@ yyreduce:
case 96:
{
(yyval.interm.intermNode) = context->parseInvariantDeclaration(*(yyvsp[-2].interm.typeQualifierBuilder), (yylsp[-1]), ImmutableString((yyvsp[-1].lex).string), (yyvsp[-1].lex).symbol);
(yyval.interm.intermNode) = context->parseGlobalQualifierDeclaration(*(yyvsp[-2].interm.typeQualifierBuilder), (yylsp[-1]), ImmutableString((yyvsp[-1].lex).string), (yyvsp[-1].lex).symbol);
}
break;
......
......@@ -609,7 +609,8 @@ bool EmulatePrecision::visitDeclaration(Visit visit, TIntermDeclaration *node)
return true;
}
bool EmulatePrecision::visitInvariantDeclaration(Visit visit, TIntermInvariantDeclaration *node)
bool EmulatePrecision::visitGlobalQualifierDeclaration(Visit visit,
TIntermGlobalQualifierDeclaration *node)
{
return false;
}
......
......@@ -30,7 +30,8 @@ class EmulatePrecision : public TLValueTrackingTraverser
bool visitBinary(Visit visit, TIntermBinary *node) override;
bool visitUnary(Visit visit, TIntermUnary *node) override;
bool visitAggregate(Visit visit, TIntermAggregate *node) override;
bool visitInvariantDeclaration(Visit visit, TIntermInvariantDeclaration *node) override;
bool visitGlobalQualifierDeclaration(Visit visit,
TIntermGlobalQualifierDeclaration *node) override;
bool visitDeclaration(Visit visit, TIntermDeclaration *node) override;
void writeEmulationHelpers(TInfoSinkBase &sink,
......
......@@ -22,7 +22,8 @@ class RemoveInvariantDeclarationTraverser : public TIntermTraverser
RemoveInvariantDeclarationTraverser() : TIntermTraverser(true, false, false) {}
private:
bool visitInvariantDeclaration(Visit visit, TIntermInvariantDeclaration *node) override
bool visitGlobalQualifierDeclaration(Visit visit,
TIntermGlobalQualifierDeclaration *node) override
{
TIntermSequence emptyReplacement;
mMultiReplacements.push_back(
......
......@@ -166,9 +166,9 @@ bool TIntermDeclaration::visit(Visit visit, TIntermTraverser *it)
return it->visitDeclaration(visit, this);
}
bool TIntermInvariantDeclaration::visit(Visit visit, TIntermTraverser *it)
bool TIntermGlobalQualifierDeclaration::visit(Visit visit, TIntermTraverser *it)
{
return it->visitInvariantDeclaration(visit, this);
return it->visitGlobalQualifierDeclaration(visit, this);
}
bool TIntermBlock::visit(Visit visit, TIntermTraverser *it)
......
......@@ -57,7 +57,8 @@ class TIntermTraverser : angle::NonCopyable
}
virtual bool visitAggregate(Visit visit, TIntermAggregate *node) { return true; }
virtual bool visitBlock(Visit visit, TIntermBlock *node) { return true; }
virtual bool visitInvariantDeclaration(Visit visit, TIntermInvariantDeclaration *node)
virtual bool visitGlobalQualifierDeclaration(Visit visit,
TIntermGlobalQualifierDeclaration *node)
{
return true;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment