Assign registers to unused dests unless the opcode is whitelisted.

If an opcode's dest is unused and can be eliminated by DCE, then
there's no good reason to check for an InvalidReg dest in that
opcode.  Have the register allocator just give it a dest.

Opcodes which are effect-ful may stick around even if their
result is unused.  A subset of those opcodes can emit better
code if the dest is unused.  Whitelist just those opcodes.

This diff makes the default be to assign a register to unused
dests, if the opcode is not whitelisted, and removes the
invalid-dest checking from several opcodes in CodeGenerator.

Reviewed By: @swtaarrs

Differential Revision: D1187390
Use ExtraData for Iter* instruction that take const(Int)

Reviewed By: @jdelong

Differential Revision: D1179062
Print DataType for BadMethodCallException

Helps in debugging.

Reviewed By: bmaurer

Differential Revision: D1178003
Disable flaky zend test

Reviewed By: @edwinsmith

Differential Revision: D1189921
Revert "Print DataType for BadMethodCallException"

: Summary. This reverts commit 2eb4b7f8e57b56979e9c689507d10d6895c70a4c. It broke a test.

Reviewed By: aravind
Maintain in-generator state, remove dependency on func->isGenerator()

Add a flag to ActRec indicating whether the ActRec is stored inside a
Continuation object. Maintain in-generator state in the HHBC translator
and use it instead of curFunc->isGenerator() checks.

Makes it possible to unify inner and outer generator functions.

All remaining func->isGenerator() checks are directly related to the
inner/outer split and will go away in a diff that merges them.

Reviewed By: @jdelong

Differential Revision: D1095272
Remove HhbcTranslator::refineType

It does bad things to SSATmps.

Reviewed By: @ottoni

Differential Revision: D1188121
Fix escaping in LightProcess protocol

The LightProcess mechanism sends newline terminated commands
over a pipe, but didn't escape newlines contained in the payload.

Reviewed By: otto

Differential Revision: D1184482
StableMap => Map in systemlib php

StableMap is just an alias at this point.

Reviewed By: @paroski

Differential Revision: D1190005
Rename Frozen -> Imm

This diff renames Frozen{Vector,Map,Set} to Imm{Vector,Map,Set}.

Reviewed By: @elgenie

Differential Revision: D1190790
switch over a bunch of ini settings to once-per-thread registration

Wow there was a lot of bugs hiding here. Much of the memory wasn't thread local that we were binding to. I really wish I could add an assert and save a lot of these bugs.

Reviewed By: @fredemmott

Differential Revision: D1186888
Fixes Session_serialize_handler bugs

Fixes some errors calling Session_serialize_handler:

Fixes #1659
Fixes cboden/Ratchet#162
Fixes other ini_set ini_get issues with Session:

Fixes #1555
Probably fixes a few tests in Zend/bad too, will look into it.

Reviewed By: @fredemmott

Differential Revision: D1180183

Pulled By: @ptarjan
making ini_on_update and ini_get overloaded

Tons of deleted code and this will make making getter helpers easier.

Reviewed By: @jdelong

Differential Revision: D1190255
maybe fix feof on socket

If the socket had buffered anything, then it shouldn't be `eof`

Reviewed By: @bertmaher

Differential Revision: D1191427
Improvements to Intl classes

* Drop vtable from NativeData heirarchy
  * Simplify base class to being just about common error handling
  * Memoize Class* lookups for ::newInstance
  * Swicth from per-thread utf8 UConverters to algorithmic converters
  * Unify localeOrDefault to a shared inline
  * Get rid of Intl::RequestData event handler

Reviewed By: @JoelMarcey

Differential Revision: D1186378
Disable flaky zend test

Reviewed By: @bertmaher

Differential Revision: D1191750
Implement more of AppendIterator

Add getArrayIterator(), getIteratorIndex()

refs guzzle/guzzle#538

Reviewed By: @ptarjan

Differential Revision: D1185792
Fix accidental case-sensitivity for headers

Converting this to a std::unordered_map from a std::map broke this
(D1145271).

Reviewed By: @markw65

Differential Revision: D1190058
hhvm manual TOC, some basic jit docs

I had a lot of trouble trying to decide what granularity we want in
the TOC, but it's best to just get something in and then iterate as we fill it
out. This also includes some docs on region selection and a couple
optimizations. It's written for the (hopefully) near future where
Translator::analyze has been replaced by the region selector.

Reviewed By: @ottoni

Differential Revision: D1191045
Don't specify -mcrc32 to gcc on AArch64

Summary: Don't specify -mcrc32 to gcc on AArch64

Test Plan: played around with cmake to verify behavior

Reviewed By: fredemmott