haikuwebkit/LayoutTests/js/dfg-arguments-alias-one-blo...

10 lines
272 B
Plaintext
Raw Permalink Normal View History

DFG arguments simplification takes unkindly to direct accesses to the arguments register https://bugs.webkit.org/show_bug.cgi?id=88261 Source/JavaScriptCore: Reviewed by Geoffrey Garen. Fixed arguments simplification for direct accesses to the arguments register, which may arise if CSE had not run. Fixed CSE so that it does run prior to arguments simplification, by making it a full-fledged member of the fixpoint. Fixed other issues in arguments simplification, like realizing that it needs to bail if there is a direct assignment to the arguments register, and failing to turn CreateArguments into PhantomArguments. Also fixed CSE's handling of store elimination of captured locals in the presence of a GetMyArgumentByVal (or one of its friends), and fixed CSE to correctly fixup variables at tail if the Flush it removes is the last operation on a local in a basic block. * bytecode/CodeBlock.cpp: (JSC::CodeBlock::dump): * dfg/DFGArgumentsSimplificationPhase.cpp: (JSC::DFG::ArgumentsSimplificationPhase::run): (JSC::DFG::ArgumentsSimplificationPhase::isOKToOptimize): * dfg/DFGCSEPhase.cpp: (JSC::DFG::CSEPhase::run): (JSC::DFG::CSEPhase::setLocalStoreElimination): (JSC::DFG::CSEPhase::performNodeCSE): (CSEPhase): * dfg/DFGDriver.cpp: (JSC::DFG::compile): LayoutTests: Reviewed by Geoffrey Garen. * fast/js/dfg-arguments-alias-one-block-expected.txt: Added. * fast/js/dfg-arguments-alias-one-block-osr-exit-expected.txt: Added. * fast/js/dfg-arguments-alias-one-block-osr-exit.html: Added. * fast/js/dfg-arguments-alias-one-block-overwrite-arguments-expected.txt: Added. * fast/js/dfg-arguments-alias-one-block-overwrite-arguments.html: Added. * fast/js/dfg-arguments-alias-one-block-overwrite-expected.txt: Added. * fast/js/dfg-arguments-alias-one-block-overwrite.html: Added. * fast/js/dfg-arguments-alias-one-block.html: Added. * fast/js/script-tests/dfg-arguments-alias-one-block-osr-exit.js: Added. (foo): * fast/js/script-tests/dfg-arguments-alias-one-block-overwrite-arguments.js: Added. (foo): * fast/js/script-tests/dfg-arguments-alias-one-block-overwrite.js: Added. (foo): * fast/js/script-tests/dfg-arguments-alias-one-block.js: Added. (foo): Canonical link: https://commits.webkit.org/106103@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@119437 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-06-04 23:27:34 +00:00
Tests that if you alias the arguments in a very small function, arguments simplification still works even if the variable isn't must-aliased.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
Passed some tests silently.
DFG arguments simplification takes unkindly to direct accesses to the arguments register https://bugs.webkit.org/show_bug.cgi?id=88261 Source/JavaScriptCore: Reviewed by Geoffrey Garen. Fixed arguments simplification for direct accesses to the arguments register, which may arise if CSE had not run. Fixed CSE so that it does run prior to arguments simplification, by making it a full-fledged member of the fixpoint. Fixed other issues in arguments simplification, like realizing that it needs to bail if there is a direct assignment to the arguments register, and failing to turn CreateArguments into PhantomArguments. Also fixed CSE's handling of store elimination of captured locals in the presence of a GetMyArgumentByVal (or one of its friends), and fixed CSE to correctly fixup variables at tail if the Flush it removes is the last operation on a local in a basic block. * bytecode/CodeBlock.cpp: (JSC::CodeBlock::dump): * dfg/DFGArgumentsSimplificationPhase.cpp: (JSC::DFG::ArgumentsSimplificationPhase::run): (JSC::DFG::ArgumentsSimplificationPhase::isOKToOptimize): * dfg/DFGCSEPhase.cpp: (JSC::DFG::CSEPhase::run): (JSC::DFG::CSEPhase::setLocalStoreElimination): (JSC::DFG::CSEPhase::performNodeCSE): (CSEPhase): * dfg/DFGDriver.cpp: (JSC::DFG::compile): LayoutTests: Reviewed by Geoffrey Garen. * fast/js/dfg-arguments-alias-one-block-expected.txt: Added. * fast/js/dfg-arguments-alias-one-block-osr-exit-expected.txt: Added. * fast/js/dfg-arguments-alias-one-block-osr-exit.html: Added. * fast/js/dfg-arguments-alias-one-block-overwrite-arguments-expected.txt: Added. * fast/js/dfg-arguments-alias-one-block-overwrite-arguments.html: Added. * fast/js/dfg-arguments-alias-one-block-overwrite-expected.txt: Added. * fast/js/dfg-arguments-alias-one-block-overwrite.html: Added. * fast/js/dfg-arguments-alias-one-block.html: Added. * fast/js/script-tests/dfg-arguments-alias-one-block-osr-exit.js: Added. (foo): * fast/js/script-tests/dfg-arguments-alias-one-block-overwrite-arguments.js: Added. (foo): * fast/js/script-tests/dfg-arguments-alias-one-block-overwrite.js: Added. (foo): * fast/js/script-tests/dfg-arguments-alias-one-block.js: Added. (foo): Canonical link: https://commits.webkit.org/106103@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@119437 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-06-04 23:27:34 +00:00
TEST COMPLETE