Implement GeneratorThis coeffect rule
commit2d5cad5a44bf4e38efd54a46ec993ce327ab22a5
authorOguz Ulgen <oulgen@fb.com>
Tue, 13 Apr 2021 16:34:16 +0000 (13 09:34 -0700)
committerFacebook GitHub Bot <facebook-github-bot@users.noreply.github.com>
Tue, 13 Apr 2021 16:35:53 +0000 (13 09:35 -0700)
tree84807d4ea2675061b1fcf1880008d10e0cad9d27
parent87883e8c0c1688914db5b964e2136a3e359f413f
Implement GeneratorThis coeffect rule

Summary: This diff implement the GeneratorThis Coeffect Rule which is used when a generator is iterated using next method etc after it was created in a possibly different context

Reviewed By: jano

Differential Revision: D27578069

fbshipit-source-id: 0057e4293728b946e087283efccc542bffbd09f4
30 files changed:
hphp/doc/ir.specification
hphp/runtime/ext/asio/ext_async-generator.php
hphp/runtime/ext/generator/ext_generator.php
hphp/runtime/vm/act-rec-inl.h
hphp/runtime/vm/coeffects.cpp
hphp/runtime/vm/jit/dce.cpp
hphp/runtime/vm/jit/ir-opcode.cpp
hphp/runtime/vm/jit/irgen-coeffects.cpp
hphp/runtime/vm/jit/irlower-act-rec.cpp
hphp/runtime/vm/jit/irlower-load-store.cpp
hphp/runtime/vm/jit/memory-effects.cpp
hphp/runtime/vm/jit/simplify.cpp
hphp/test/slow/coeffects/generator-1.php [new file with mode: 0644]
hphp/test/slow/coeffects/generator-1.php.expectf [new file with mode: 0644]
hphp/test/slow/coeffects/generator-1.php.opts [new file with mode: 0644]
hphp/test/slow/coeffects/generator-2.php [new file with mode: 0644]
hphp/test/slow/coeffects/generator-2.php.expectf [new file with mode: 0644]
hphp/test/slow/coeffects/generator-2.php.opts [new file with mode: 0644]
hphp/test/slow/coeffects/generator-3.php [new file with mode: 0644]
hphp/test/slow/coeffects/generator-3.php.expectf [new file with mode: 0644]
hphp/test/slow/coeffects/generator-3.php.opts [new file with mode: 0644]
hphp/test/slow/coeffects/generator-async-1.php [new file with mode: 0644]
hphp/test/slow/coeffects/generator-async-1.php.expectf [new file with mode: 0644]
hphp/test/slow/coeffects/generator-async-1.php.opts [new file with mode: 0644]
hphp/test/slow/coeffects/generator-unwind-1.php [new file with mode: 0644]
hphp/test/slow/coeffects/generator-unwind-1.php.expectf [new file with mode: 0644]
hphp/test/slow/coeffects/generator-unwind-1.php.opts [new file with mode: 0644]
hphp/test/slow/coeffects/generator-unwind-2.php [new file with mode: 0644]
hphp/test/slow/coeffects/generator-unwind-2.php.expectf [new file with mode: 0644]
hphp/test/slow/coeffects/generator-unwind-2.php.opts [new file with mode: 0644]