Fix some problems with HHIR generic memory ops that take C(Int) sources
commit21c41a453f0ecfbc7f0ee0471c3018905b77f243
authorJordan DeLong <jdelong@fb.com>
Thu, 8 Jan 2015 19:14:07 +0000 (8 11:14 -0800)
committerhhvm-bot <hhvm-bot@fb.com>
Fri, 23 Jan 2015 01:49:58 +0000 (22 17:49 -0800)
treec2143e497ce7da02ecc10c587e1dfb3d03861244
parentf4b285517d1f06ddb55717fd348234d936d233f2
Fix some problems with HHIR generic memory ops that take C(Int) sources

Summary: The pointee() function was ignoring possible offsets, so just refactor
things so we always use offset zero with these.  Also add a DbgTrashMem.  (I
noticed this problem partially through adding that.)  The packedarray functions
were handling it properly.  LdElem and StElem are used with non-constant
integer offsets---I want to replace them with a new typed-lea and StMem/LdMem,
but for this diff just make them not incorrect they way they are.

Reviewed By: @alexmalyshev

Differential Revision: D1772985
15 files changed:
hphp/doc/ir.specification
hphp/runtime/base/memory-manager.h
hphp/runtime/test/prediction-opts.cpp
hphp/runtime/vm/jit/code-gen-arm.cpp
hphp/runtime/vm/jit/code-gen-x64.cpp
hphp/runtime/vm/jit/dce.cpp
hphp/runtime/vm/jit/extra-data.h
hphp/runtime/vm/jit/ir-instruction.cpp
hphp/runtime/vm/jit/irgen-cns.cpp
hphp/runtime/vm/jit/irgen-inlining.cpp
hphp/runtime/vm/jit/irgen-minstr.cpp
hphp/runtime/vm/jit/irgen-sprop-global.cpp
hphp/runtime/vm/jit/memory-effects.cpp
hphp/runtime/vm/jit/prediction-opts.cpp
hphp/runtime/vm/jit/store-elim.cpp