Fix some Type::Null stuff, LbGbl guard relaxation
commitd7a3be1d72bcc5ed06e6797e99294c8e4ed901d0
authorBrett Simmers <bsimmers@fb.com>
Tue, 24 Jun 2014 22:44:55 +0000 (24 15:44 -0700)
committerfacebook-github-bot <githubbot@fb.com>
Fri, 27 Jun 2014 08:09:33 +0000 (27 01:09 -0700)
treee321508f220748f3a76519ea2438e1cbaba5c7cd
parent13a9891308ad2195e67e45950a32afdc7ac06f13
Fix some Type::Null stuff, LbGbl guard relaxation

Summary: - We were being sloppy with Type::Null in isKnownDataType and toDataType,
  mostly for historical reasons. I cleaned that up and nothing seemed to break.
- IsType<Null> was just checking for KindOfNull. I fixed it to check for <=
  KindOfNull to also get KindOfUninit.
- LdGbl is roughly the same as LdLoc but we weren't tracing through it in guard
  relaxation.

The new test is fixed by having either the second or the third item, since it
was a combination of both causing issues.

Reviewed By: @ottoni

Differential Revision: D1401528
18 files changed:
hphp/runtime/vm/jit/code-gen-arm.cpp
hphp/runtime/vm/jit/code-gen-x64.cpp
hphp/runtime/vm/jit/frame-state.cpp
hphp/runtime/vm/jit/frame-state.h
hphp/runtime/vm/jit/guard-relaxation.cpp
hphp/runtime/vm/jit/ir-builder.cpp
hphp/runtime/vm/jit/ir-translator.cpp
hphp/runtime/vm/jit/minstr-translator.cpp
hphp/runtime/vm/jit/print.cpp
hphp/runtime/vm/jit/print.h
hphp/runtime/vm/jit/simplifier.cpp
hphp/runtime/vm/jit/ssa-tmp.cpp
hphp/runtime/vm/jit/test/type.cpp
hphp/runtime/vm/jit/type.cpp
hphp/runtime/vm/jit/type.h
hphp/test/slow/unary_operators/isset_global.php [new file with mode: 0644]
hphp/test/slow/unary_operators/isset_global.php.expect [new file with mode: 0644]
hphp/test/slow/unary_operators/isset_global.php.opts [new file with mode: 0644]