Add ConstStringDataMap typedef

Summary: Need it for a later diff.

Reviewed By: @jano

Differential Revision: D1355266
Prune some unused boost includes

Summary: Also replace some uses of boost::has_trivial_destructor with
std::is_trivially_destructible, and boost::is_convertible with
std::is_convertible.

Reviewed By: @jdelong

Differential Revision: D1356667
convert RuntimeOption to Config::Bind

Summary: Lets try switching out biggest file over

Reviewed By: @fredemmott

Differential Revision: D1348861
Use empty_string instead of return "" (base, 2/n)

Summary: Spliting this attempt further due to perflab issues to attempt
to bisect it.

Reviewed By: @markw65

Differential Revision: D1354055
Reduce return type refine limit on mixedbag.php

Summary: It contains a recursive function that builds binary trees in
arrays.  Hhbbc will repeatedly visit this function (15 times by
default) building an array type that is representing a binary tree of
that height.  In a debug build this gets out of control slow....

Reviewed By: @markw65

Differential Revision: D1357719
Check frontier before/after calling cgInst

Summary: Instead of relying on cgInst to return its start address or null.

Reviewed By: @swtaarrs

Differential Revision: D1356936
add support for arg unpacking to the parser

Summary: ... doesn't do anything useful yet (besides passing the param)

Reviewed By: @ptarjan

Differential Revision: D1254882
Fix differ in signedness warning when compiling with gcc

Summary: Have `htable_add` take a uint as first parameter instead of int. All callers of this function are passing units.

We won't get this type of warning when compiling with gcc...

```
hh_shared.c: In function ‘hh_add_dep’:
hh_shared.c:406:3: warning: pointer targets in passing argument 1 of ‘htable_add’ differ in signedness [-Wpointer-sign]
   if(!htable_add(deptbl_bindings, hash, hash)) {
   ^
hh_shared.c:373:12: note: expected ‘int64_t *’ but argument is of type ‘uint64_t *’
 static int htable_add(int64_t* table, unsigned long hash, int64_t value) {
```

Reviewed By: @ptarjan

Differential Revision: D1358139
Support more types of inlining in the tracelet region selector

Summary: This contains a few different fixes, all working together to bring the
tracelet selector's inlining support back up to par with analyze()'s:

- If we encounter a Jmp(N)Z and the top of the stack is a const Bool, just keep
  tracing past the jump since it's effectively unconditional. We can now
  inline functions with this form of control flow.
- Support inlining calls with numArgs < numParams if the gap will be filled in
  by DV funclets.
- Support IR-level inlining of NativeImpl calls.

Reviewed By: @jdelong

Differential Revision: D1353160
Add support for new Frozen code region

Summary: And cleans up some stuff along the way.

Reviewed By: @swtaarrs

Differential Revision: D1356644
Change HotFuncThreshold to 80

Summary: That's it.

Reviewed By: @edwinsmith

Differential Revision: D1358838
Generate code to cast int to double in place

Summary: It's a simple peephole for this case.  It seems silly to call
a helper that switches on the type when we can do this common
conversion in place.

Reviewed By: @ottoni

Differential Revision: D1358078
Fix ReflectionParameter::getClass for scalar typehints

Summary: - should work for hack functions, even if EnableHipHopSyntax/scalar typehints options are off
- should work for PHP functions with the options set

fixes facebook/hhvm#2057

Reviewed By: @ptarjan

Differential Revision: D1356779
Move furc_hash into fbi and remove dependency on memcache/ch

Summary: continuum.h doesn't really add anything and it has an unnecessarily complicated interface.
It should be considered deprecated and endpoints should use furc_hash directly.
Completely removing it should be a separate task.

Reviewed By: pavlo

Differential Revision: D1355760
update timelib to php-5.5.13

Summary: We need `timelib_parse_zone`.

Reviewed By: @JoelMarcey

Differential Revision: D1357300
Remove XHPAST2

Summary: No one has actively worked on it or used it since Jul 2013, but it still
needs to be updated every time someone does changes to Parser or
ParserBase.

Reviewed By: jdelong, eletuchy

Differential Revision: D1358020
Remove util/min-max-macros.h

Summary: We don't need these if we have std::max and std::min

Reviewed By: @jdelong

Differential Revision: D1357833
Remove BiasedCoin

Summary: It's dead, we have a thread-local one getting constructed for Translator
but it never actually gets used.

Reviewed By: @swtaarrs

Differential Revision: D1357676
Remove VariantStrongBind and CVarStrongBind

Summary: All they do is box an existing Variant and make a copy of it. This makes
more sense as a constructor on Variant (because we're trying to avoid
the Variant(const Variant&) constructor).

Reviewed By: @jdelong

Differential Revision: D1354380
Move vmfp, vmsp, and vmpc into RDS

Summary: The three registers now live in the RDS header struct instead of the
execution context. This makes accessing them from translated code more
efficient, though we do that rarely enough that it doesn't matter much in
practice. The speed of the accessor functions should be unchanged: they're
still loading a pointer from TLS then reading at a fixed offset from that
pointer. This will slow down parts of the interpreter a little, since they now
access TLS instead of a member on this.

Most of the diff is just changing uses of the old accessors to use the "new"
ones and is pretty uninteresting. The biggest change is that the
vmfp()/vmsp()/vmpc() accessors have moved out of translator-inline.h into their
own header, runtime/vm/vm-regs.h, and are now the canonical way to access these
registers. VMRegAnchor and CallerFrame have also moved out of the JIT namespace
since they're such an integral part of the VM now.

Reviewed By: @jdelong

Differential Revision: D1357112