Lines Matching defs:aggrNode
953 TIntermTyped* TIntermediate::fold(TIntermAggregate* aggrNode)
955 if (aggrNode == nullptr)
956 return aggrNode;
958 if (! areAllChildConst(aggrNode))
959 return aggrNode;
961 if (aggrNode->isConstructor())
962 return foldConstructor(aggrNode);
964 TIntermSequence& children = aggrNode->getSequence();
971 switch (aggrNode->getOp()) {
1013 return aggrNode;
1033 switch (aggrNode->getOp()) {
1179 return aggrNode;
1205 return aggrNode;
1214 switch (aggrNode->getOp()) {
1280 return aggrNode;
1284 TIntermConstantUnion *newNode = new TIntermConstantUnion(newConstArray, aggrNode->getType());
1286 newNode->setLoc(aggrNode->getLoc());
1291 bool TIntermediate::areAllChildConst(TIntermAggregate* aggrNode)
1297 if (aggrNode) {
1298 TIntermSequence& childSequenceVector = aggrNode->getSequence();
1309 TIntermTyped* TIntermediate::foldConstructor(TIntermAggregate* aggrNode)
1313 TConstUnionArray unionArray(aggrNode->getType().computeNumComponents());
1314 if (aggrNode->getSequence().size() == 1)
1315 error = parseConstTree(aggrNode, unionArray, aggrNode->getOp(), aggrNode->getType(), true);
1317 error = parseConstTree(aggrNode, unionArray, aggrNode->getOp(), aggrNode->getType());
1320 return aggrNode;
1322 return addConstantUnion(unionArray, aggrNode->getType(), aggrNode->getLoc());