Added IterBreakV, MIter{Init,InitK,Next,NextK,Free} and fixed memory tracking bug.
commit0d5d5bca72eacc4a8d6ccdc64fb7bdac1b0c4cb4
authorPaul Bissonnette <paulbiss@fb.com>
Tue, 11 Jun 2013 18:09:56 +0000 (11 11:09 -0700)
committerSara Golemon <sgolemon@fb.com>
Sat, 6 Jul 2013 18:12:28 +0000 (6 11:12 -0700)
tree977696c5d60fd546fb34c4ac06bfab6ee5ff47ab
parent083b1d32adccf4e5cee8cfe9247b43526439c016
Added IterBreakV, MIter{Init,InitK,Next,NextK,Free} and fixed memory tracking bug.

Added IR opcodes to perform MIter* instructions in JIT.  Added IterBreakV bytecode
operation to break out of multiple loops containing iterators.  Emitter and assembler
were modified to support such use.
28 files changed:
hphp/compiler/analysis/emitter.cpp
hphp/compiler/analysis/emitter.h
hphp/compiler/analysis/peephole.cpp
hphp/doc/bytecode.specification
hphp/doc/ir.specification
hphp/runtime/base/array/array_iterator.cpp
hphp/runtime/base/array/array_iterator.h
hphp/runtime/base/execution_context.h
hphp/runtime/base/memory/memory_manager.cpp
hphp/runtime/vm/as.cpp
hphp/runtime/vm/bytecode.cpp
hphp/runtime/vm/hhbc.cpp
hphp/runtime/vm/hhbc.h
hphp/runtime/vm/jit/codegen.cpp
hphp/runtime/vm/jit/codegen.h
hphp/runtime/vm/jit/extradata.h
hphp/runtime/vm/jit/hhbctranslator.cpp
hphp/runtime/vm/jit/hhbctranslator.h
hphp/runtime/vm/jit/ir.h
hphp/runtime/vm/jit/irtranslator.cpp
hphp/runtime/vm/jit/translator-instrs.h
hphp/runtime/vm/jit/translator.cpp
hphp/runtime/vm/jit/translator.h
hphp/runtime/vm/verifier/check_func.cpp
hphp/test/quick/asm_iterbreak.hhas [new file with mode: 0644]
hphp/test/quick/asm_iterbreak.hhas.expect [new file with mode: 0644]
hphp/test/quick/bad_iter_warning.php [new file with mode: 0644]
hphp/test/quick/bad_iter_warning.php.expectf [new file with mode: 0644]