Remove FPass[CV]Nop opcodes
commitdc7a6c9b20778d89527acc4197581755d2b897fc
authorJan Oravec <jan@fb.com>
Tue, 26 Jun 2018 23:38:46 +0000 (26 16:38 -0700)
committerHhvm Bot <hhvm-bot@users.noreply.github.com>
Tue, 26 Jun 2018 23:45:40 +0000 (26 16:45 -0700)
tree5623a3bd4a20de79faa0a694cb26b9eeb9a8b874
parentb8db9249e4939d3c51cfc0e3d21f689b2e32a9e7
Remove FPass[CV]Nop opcodes

Summary:
Remove FPassCNop and FPassVNop opcodes. These opcodes were not doing anything
except of converting flavor, so let's make verifier able to unify C and V into
a CV type instead and make a workaround for hphpc to pretend it is emitting Vs
in both branches of FIsParamByRef.

Reviewed By: alexeyt

Differential Revision: D8503574

fbshipit-source-id: a0fd406d1fbcc63714fc7a713514111b61838e82
130 files changed:
hphp/compiler/analysis/emitter.cpp
hphp/doc/bytecode.specification
hphp/hack/src/hhbc/Hhas_parser_actions.ml
hphp/hack/src/hhbc/emit_expression.ml
hphp/hack/src/hhbc/emit_inout_function.ml
hphp/hack/src/hhbc/emit_memoize_helpers.ml
hphp/hack/src/hhbc/hhbc_ast.ml
hphp/hack/src/hhbc/hhbc_hhas.ml
hphp/hack/src/hhbc/instruction_sequence.ml
hphp/hack/src/hhbc/semdiff/rhl.ml
hphp/hack/test/semdiff/attributes_on_params.1.hhas
hphp/hack/test/semdiff/attributes_on_params.2.hhas
hphp/hack/test/semdiff/decodecufiter.1.hhas
hphp/hack/test/semdiff/decodecufiter.2.hhas
hphp/hack/test/semdiff/doubles_01.1.hhas
hphp/hack/test/semdiff/doubles_01.2.hhas
hphp/hack/test/semdiff/doubles_02.1.hhas
hphp/hack/test/semdiff/doubles_02.2.hhas
hphp/hack/test/semdiff/doubles_03.1.hhas
hphp/hack/test/semdiff/doubles_03.2.hhas
hphp/hack/test/semdiff/doubles_04.1.hhas
hphp/hack/test/semdiff/doubles_04.2.hhas
hphp/hack/test/semdiff/doubles_05.1.hhas
hphp/hack/test/semdiff/doubles_05.2.hhas
hphp/hack/test/semdiff/exns_01.1.hhas
hphp/hack/test/semdiff/exns_01.2.hhas
hphp/hack/test/semdiff/exns_02.1.hhas
hphp/hack/test/semdiff/exns_02.2.hhas
hphp/hack/test/semdiff/exns_03.1.hhas
hphp/hack/test/semdiff/exns_03.2.hhas
hphp/hack/test/semdiff/exns_05.1.hhas
hphp/hack/test/semdiff/exns_05.2.hhas
hphp/hack/test/semdiff/exns_06.1.hhas
hphp/hack/test/semdiff/exns_06.2.hhas
hphp/hack/test/semdiff/exns_06.semdiff.exp
hphp/hack/test/semdiff/fpassl_01.1.hhas
hphp/hack/test/semdiff/fpassl_01.2.hhas
hphp/hack/test/semdiff/fpassl_02.1.hhas
hphp/hack/test/semdiff/fpassl_02.2.hhas
hphp/hack/test/semdiff/paper.1.hhas
hphp/hack/test/semdiff/paper.2.hhas
hphp/hack/test/semdiff/vget_01.1.hhas
hphp/hack/test/semdiff/vget_01.2.hhas
hphp/hack/test/semdiff/vget_02.1.hhas
hphp/hack/test/semdiff/vget_02.2.hhas
hphp/hack/test/semdiff/vget_03.1.hhas
hphp/hack/test/semdiff/vget_03.2.hhas
hphp/hack/test/semdiff/wtf.1.hhas
hphp/hack/test/semdiff/wtf.2.hhas
hphp/hack/test/semdiff/wtf.semdiff.exp
hphp/hhbbc/bc.h
hphp/hhbbc/emit.cpp
hphp/hhbbc/interp-builtin.cpp
hphp/hhbbc/interp.cpp
hphp/hhbbc/misc.h
hphp/hhbbc/optimize.cpp
hphp/hhbbc/test/bc.cpp
hphp/runtime/ext/collections/ext_collections-map.php
hphp/runtime/ext/collections/ext_collections-map.tmpl
hphp/runtime/vm/as.cpp
hphp/runtime/vm/bytecode.cpp
hphp/runtime/vm/hhbc.cpp
hphp/runtime/vm/hhbc.h
hphp/runtime/vm/jit/irgen-call.cpp
hphp/runtime/vm/jit/translator.cpp
hphp/runtime/vm/verifier/cfg.h
hphp/runtime/vm/verifier/check-func.cpp
hphp/runtime/vm/verifier/check.h
hphp/runtime/vm/verifier/fuzzer/fuzzer.ml
hphp/runtime/vm/verifier/fuzzer/instr_utils.ml
hphp/runtime/vm/verifier/fuzzer/random_utils.ml
hphp/system/php/array_filter.hhas
hphp/system/php/array_map.hhas
hphp/system/php/array_reduce.hhas
hphp/test/quick/FPassC-2.php
hphp/test/quick/access_modifier.hhas
hphp/test/quick/asm_alias.hhas
hphp/test/quick/asm_array.hhas
hphp/test/quick/asm_array_elem.hhas
hphp/test/quick/asm_array_packed.hhas
hphp/test/quick/asm_assert_optobj.hhas
hphp/test/quick/asm_assert_t.hhas
hphp/test/quick/asm_class.hhas
hphp/test/quick/asm_declvars.hhas
hphp/test/quick/asm_dvinit.hhas
hphp/test/quick/asm_dvinit_fault.hhas
hphp/test/quick/asm_fatal_await.hhas
hphp/test/quick/asm_fault.hhas
hphp/test/quick/asm_fault_endings.hhas
hphp/test/quick/asm_fcall.hhas
hphp/test/quick/asm_newstructarray.hhas
hphp/test/quick/asm_prop_init.hhas
hphp/test/quick/asm_sswitch_slow.hhas
hphp/test/quick/asm_types.hhas
hphp/test/quick/asm_unusual_lifetimes.hhas
hphp/test/quick/assertRATL_block_end.hhas
hphp/test/quick/assertRATStk_block_end.hhas
hphp/test/quick/assert_to_nop.hhas
hphp/test/quick/baseH.hhas
hphp/test/quick/bool_operations.hhas
hphp/test/quick/class_torture.hhas
hphp/test/quick/constructor_destructor.hhas
hphp/test/quick/fpi_region.hhas
hphp/test/quick/fpi_region.hhas.expectf
hphp/test/quick/hhas_fc_enum.hhas
hphp/test/quick/hopt-translator_unwind.hhas
hphp/test/quick/member_key_offset.hhas
hphp/test/quick/member_mode_inconsistency.hhas
hphp/test/quick/member_mode_inconsistency2.hhas
hphp/test/quick/neg_iva.hhas
hphp/test/quick/oodeclexists.hhas
hphp/test/quick/setHelperPreError.php
hphp/test/quick/setHelperPreError.php.expectf
hphp/test/quick/silence.hhas
hphp/test/quick/silence.hhas.expectf
hphp/test/quick/strict_type_bad_value.hhas
hphp/test/quick/strict_types.hhas
hphp/test/quick/strict_types_no_scalar.hhas
hphp/test/quick/test-withref.hhas
hphp/test/quick/translator_unwind.hhas
hphp/test/quick/unreachable-fpi-1.hhas
hphp/test/quick/weak_types.hhas
hphp/test/slow/dict/new-like-array.hhas
hphp/test/slow/dict/w-iterator.hhas
hphp/test/slow/ir_inlining/unreachable-calls.hhas
hphp/test/slow/keyset/new-like-array.hhas
hphp/test/slow/keyset/w-iterator.hhas
hphp/test/slow/vec/new-like-array.hhas
hphp/test/slow/vec/w-iterator.hhas
hphp/tools/gdb/README.md