Changeset 245745 in webkit
- Timestamp:
- May 24, 2019, 1:19:07 AM (7 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 6 edited
-
ChangeLog (modified) (1 diff)
-
Modules/webgpu/WHLSL/AST/WHLSLReadModifyWriteExpression.h (modified) (1 diff)
-
Modules/webgpu/WHLSL/WHLSLASTDumper.cpp (modified) (2 diffs)
-
Modules/webgpu/WHLSL/WHLSLChecker.cpp (modified) (2 diffs)
-
Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp (modified) (4 diffs)
-
Modules/webgpu/WHLSL/WHLSLVisitor.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r245742 r245745 1 2019-05-24 Saam barati <sbarati@apple.com> 2 3 [WHLSL] ReadModifyWriteExpression always has a result and new value expression 4 https://bugs.webkit.org/show_bug.cgi?id=198079 5 6 Reviewed by Myles Maxfield. 7 8 Let's not pretend it might not. 9 10 * Modules/webgpu/WHLSL/AST/WHLSLReadModifyWriteExpression.h: 11 (WebCore::WHLSL::AST::ReadModifyWriteExpression::newValueExpression): 12 (WebCore::WHLSL::AST::ReadModifyWriteExpression::resultExpression): 13 (WebCore::WHLSL::AST::ReadModifyWriteExpression::takeNewValueExpression): 14 (WebCore::WHLSL::AST::ReadModifyWriteExpression::takeResultExpression): 15 * Modules/webgpu/WHLSL/WHLSLASTDumper.cpp: 16 (WebCore::WHLSL::ASTDumper::visit): 17 * Modules/webgpu/WHLSL/WHLSLChecker.cpp: 18 (WebCore::WHLSL::Checker::visit): 19 * Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp: 20 (WebCore::WHLSL::PropertyResolver::visit): 21 * Modules/webgpu/WHLSL/WHLSLVisitor.cpp: 22 (WebCore::WHLSL::Visitor::visit): 23 1 24 2019-05-23 Simon Fraser <simon.fraser@apple.com> 2 25 -
trunk/Source/WebCore/Modules/webgpu/WHLSL/AST/WHLSLReadModifyWriteExpression.h
r245680 r245745 87 87 VariableDeclaration& oldValue() { return m_oldValue; } 88 88 VariableDeclaration& newValue() { return m_newValue; } 89 Expression* newValueExpression() { return m_newValueExpression ? &*m_newValueExpression : nullptr; } 90 Expression* resultExpression() { return m_resultExpression ? &*m_resultExpression : nullptr; } 89 Expression& newValueExpression() 90 { 91 ASSERT(m_newValueExpression); 92 return *m_newValueExpression; 93 } 94 Expression& resultExpression() 95 { 96 ASSERT(m_resultExpression); 97 return *m_resultExpression; 98 } 91 99 UniqueRef<Expression> takeLeftValue() { return WTFMove(m_leftValue); } 92 100 UniqueRef<VariableDeclaration> takeOldValue() { return WTFMove(m_oldValue); } 93 101 UniqueRef<VariableDeclaration> takeNewValue() { return WTFMove(m_newValue); } 94 Optional<UniqueRef<Expression>> takeNewValueExpression() { return WTFMove(m_newValueExpression); } 95 Optional<UniqueRef<Expression>> takeResultExpression() { return WTFMove(m_resultExpression); } 102 UniqueRef<Expression> takeNewValueExpression() 103 { 104 auto result = WTFMove(m_newValueExpression.value()); 105 m_newValueExpression.reset(); 106 return result; 107 } 108 UniqueRef<Expression> takeResultExpression() 109 { 110 auto result = WTFMove(m_resultExpression.value()); 111 m_resultExpression.reset(); 112 return result; 113 } 96 114 97 115 private: -
trunk/Source/WebCore/Modules/webgpu/WHLSL/WHLSLASTDumper.cpp
r245727 r245745 626 626 visit(newVariable.get()); 627 627 m_out.print(" = "); 628 visit( *readModifyWriteExpression.newValueExpression());628 visit(readModifyWriteExpression.newValueExpression()); 629 629 m_out.print(", "); 630 630 … … 634 634 m_out.print(", "); 635 635 636 visit( *readModifyWriteExpression.resultExpression());636 visit(readModifyWriteExpression.resultExpression()); 637 637 m_out.print(")"); 638 638 } -
trunk/Source/WebCore/Modules/webgpu/WHLSL/WHLSLChecker.cpp
r245680 r245745 848 848 // FIXME: https://bugs.webkit.org/show_bug.cgi?id=198166 Figure out what to do with the ReadModifyWriteExpression's AnonymousVariables. 849 849 850 auto newValueInfo = recurseAndGetInfo( *readModifyWriteExpression.newValueExpression());850 auto newValueInfo = recurseAndGetInfo(readModifyWriteExpression.newValueExpression()); 851 851 if (!newValueInfo) 852 852 return; … … 857 857 } 858 858 859 auto resultInfo = recurseAndGetInfo( *readModifyWriteExpression.resultExpression());859 auto resultInfo = recurseAndGetInfo(readModifyWriteExpression.resultExpression()); 860 860 if (!resultInfo) 861 861 return; -
trunk/Source/WebCore/Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp
r245721 r245745 475 475 476 476 auto newValueExpression = readModifyWriteExpression.takeNewValueExpression(); 477 ASSERT(newValueExpression); // FIXME: https://bugs.webkit.org/show_bug.cgi?id=198170 Relax this constraint. 478 auto assignmentExpression = makeUniqueRef<AST::AssignmentExpression>(Lexer::Token(readModifyWriteExpression.origin()), WTFMove(variableReference), WTFMove(*newValueExpression)); 477 auto assignmentExpression = makeUniqueRef<AST::AssignmentExpression>(Lexer::Token(readModifyWriteExpression.origin()), WTFMove(variableReference), WTFMove(newValueExpression)); 479 478 assignmentExpression->setType(baseType->clone()); 480 479 assignmentExpression->setTypeAnnotation(AST::RightValue()); … … 504 503 505 504 auto resultExpression = readModifyWriteExpression.takeResultExpression(); 506 ASSERT(resultExpression); // FIXME: https://bugs.webkit.org/show_bug.cgi?id=198170 Be resilient to this being null. 507 auto type = (*resultExpression)->resolvedType().clone(); 508 expressions.append(WTFMove(*resultExpression)); 505 auto type = resultExpression->resolvedType().clone(); 506 expressions.append(WTFMove(resultExpression)); 509 507 510 508 UniqueRef<AST::VariableDeclaration> oldVariableDeclaration = readModifyWriteExpression.takeOldValue(); … … 550 548 551 549 auto newValueExpression = readModifyWriteExpression.takeNewValueExpression(); 552 ASSERT(newValueExpression); // FIXME: https://bugs.webkit.org/show_bug.cgi?id=198170 Relax this constraint 553 auto assignmentExpression = makeUniqueRef<AST::AssignmentExpression>(Lexer::Token(readModifyWriteExpression.leftValue().origin()), WTFMove(variableReference), WTFMove(*newValueExpression)); 550 auto assignmentExpression = makeUniqueRef<AST::AssignmentExpression>(Lexer::Token(readModifyWriteExpression.leftValue().origin()), WTFMove(variableReference), WTFMove(newValueExpression)); 554 551 assignmentExpression->setType(readModifyWriteExpression.leftValue().resolvedType().clone()); 555 552 assignmentExpression->setTypeAnnotation(AST::RightValue()); … … 568 565 569 566 auto resultExpression = readModifyWriteExpression.takeResultExpression(); 570 ASSERT(resultExpression); // FIXME: https://bugs.webkit.org/show_bug.cgi?id=198170 Be resilient to this being null. 571 auto type = (*resultExpression)->resolvedType().clone(); 572 modifyResult->expressions.append(WTFMove(*resultExpression)); 567 auto type = resultExpression->resolvedType().clone(); 568 modifyResult->expressions.append(WTFMove(resultExpression)); 573 569 574 570 UniqueRef<AST::VariableDeclaration> oldVariableDeclaration = readModifyWriteExpression.takeOldValue(); -
trunk/Source/WebCore/Modules/webgpu/WHLSL/WHLSLVisitor.cpp
r245680 r245745 537 537 checkErrorAndVisit(readModifyWriteExpression.oldValue()); 538 538 checkErrorAndVisit(readModifyWriteExpression.newValue()); 539 if (readModifyWriteExpression.newValueExpression()) 540 checkErrorAndVisit(*readModifyWriteExpression.newValueExpression()); 541 if (readModifyWriteExpression.resultExpression()) 542 checkErrorAndVisit(*readModifyWriteExpression.resultExpression()); 539 checkErrorAndVisit(readModifyWriteExpression.newValueExpression()); 540 checkErrorAndVisit(readModifyWriteExpression.resultExpression()); 543 541 } 544 542
Note:
See TracChangeset
for help on using the changeset viewer.