Relax guards for CGetL, RetC, RetV
commitd54b34d8915ce7076c03c6f276c730afa7408546
authorottoni <ottoni@fb.com>
Mon, 12 Nov 2012 08:56:38 +0000 (12 00:56 -0800)
committerSara Golemon <sgolemon@fb.com>
Wed, 5 Dec 2012 21:11:21 +0000 (5 13:11 -0800)
tree48b27d8780e0054c550e1f0a247eaa84213f9c2a
parent69ea0d6951f0593a5e23ca0d592f5d77a1f8da27
Relax guards for CGetL, RetC, RetV

Use guard relaxation for CGetL, RetC, and RetV.

This diff also changes the DataType numbers to give one bit for each
type (with the exception of KindOfUninit, which is still 0).  This
enables a more efficient check in some cases, such as "uncounted but
not uninit", which is used for CGetL.
21 files changed:
src/runtime/base/tv_helpers.h
src/runtime/base/type_variant.cpp
src/runtime/base/types.h
src/runtime/vm/translator/asm-x64.h
src/runtime/vm/translator/hopt/codegen.cpp
src/runtime/vm/translator/translator-x64.cpp
src/runtime/vm/translator/translator-x64.h
src/runtime/vm/translator/translator.cpp
src/runtime/vm/translator/translator.h
src/runtime/vm/translator/unwind-x64.cpp
src/runtime/vm/translator/unwind-x64.h
src/runtime/vm/type-profile.cpp
src/system/gen/php/classes/directoryiterator.cpp
src/system/gen/php/classes/exception.cpp
src/system/gen/php/classes/iterator.cpp
src/system/gen/php/classes/reflection.cpp
src/system/gen/php/classes/splfile.cpp
src/system/gen/php/classes/splobjectstorage.cpp
src/system/gen/sys/dynamic_table_class.cpp
src/system/gen/sys/scalar_integers.cpp
src/util/trace.cpp