improve performance in simplexml

Summary: When casting a SimpleXML element to boolean, we're only concerned with
the object having an XML node, *or* having attributes. Building
attributes is done by sxe_get_prop_hash that also recursively builds the
entire element tree starting from that element.

We shortcircuit when the object has a valid XML node to prevent excessive
amount of object creation when all your program is doing is loading
XML strings and doing read/toBool operations.

Before: http://i.imgur.com/TFFj97u.gif
After:  http://i.imgur.com/3kNpwIM.gif
Closes #2855

Reviewed By: @scannell

Differential Revision: D1364022

Pulled By: @JoelMarcey
add missing include in gperftools build

Summary: When building with -DUSE_GOOGLE_CPU_PROFILER=1, we end up calling into
FileUtil::mkdir, but file-util.h was never included.
Closes #2853

Reviewed By: @fredemmott

Differential Revision: D1364000

Pulled By: @JoelMarcey
Stop HHBBC from assuming class constants are uncounted

Summary: HHBBC assumed class constants are always not refcounted.
However, php5.6 made it possible to make constant values able to store ref counted values.

Reviewed By: @jdelong

Differential Revision: D1360070
Travis refactoring

Summary: - Official stable version: boost 1.55.
- Simplified regexp expressions during tests.
- minor changes

Please check, thanks.
Closes #2848

Reviewed By: @ptarjan

Differential Revision: D1363601

Pulled By: @JoelMarcey
Run skipif files for repo mode tests

Summary: We were just trying to run it without building the repo at all.

While I'm in there, I'm going to make sure there wasn't anything printed on stderr while running a .skipif

Reviewed By: @fredemmott

Differential Revision: D1346226
Remove UNLIKELY from JIT-only places

Summary: These aren't hot enough for micro-optimization so it seems
cleaner to omit the annotations.

Reviewed By: @scannell

Differential Revision: D1363649
Tweaks to improve JIT time with tracelet region selector

Summary: 1) Don't reflow types in tracelet formation's call to relaxGuards.

2) Lazily create exits in HhbcTranslator::guardTypeLocal (should help in general).

Reviewed By: @swtaarrs

Differential Revision: D1364825
Implemented SoapHeader properties

Summary: SoapHeader has public facing properties that can be manipulated. Those properties are undocumented.

Fixes #2822

Reviewed By: @fredemmott

Differential Revision: D1360488
Punt if framep is constant

Summary: Band-aid to prevent crashing; we still need to find out why
we're generating bogus IR.

Reviewed By: @markw65

Differential Revision: D1366150
Implement __toString() for reflection classes

Summary: ReflectionFunction
ReflectionMethod
ReflectionClass
ReflectionObject
ReflectionProperty
ReflectionParameter

Also...
* Found/fixed a crash in ReflectionClass::getOrderedConstants()
* Added missing function ReflectionClass::isIterable()

Closes #1571

Reviewed By: @fredemmott

Differential Revision: D1363317
Embed hhi files into hh_server binary

Summary: This will remove an annoying install step when getting started
with Hack.

Reviewed By: @elgenie

Differential Revision: D1353049
Read hhconfig to determine if we should use embedded hhi's

Summary: This is separate from D1353049 so that it can be separately
reverted. We need a transition plan for FB www, and this is simple. This
isn't such a huge deal for open-source users -- they can just delete
their hhi directories as part of their hh_server upgrade. For more
involved upgrades, we plan to go this path, except actually go an entire
OSS release with the config option present, and all sorts of automatic
upgrade stuff, but we don't have the machinery for that quite yet.

Reviewed By: @elgenie

Differential Revision: D1364920
Make hhi file valid

Summary: This should have been decl in the first place.

Reviewed By: @elgenie

Differential Revision: D1364934
fix a memory leak in simplexml

Summary: Oops, this one's on me. Since t_getiterator passes control over from the
sxe object to the iterator, we need to actually release sxe when our
iterator's destructor is called.

Fixes #2854.
Closes #2859

Reviewed By: @sgolemon

Differential Revision: D1366174

Pulled By: @JoelMarcey
Infer that IncDecL of an Int goes to Int in no-float-overflow mode

Reviewed By: @jdelong

Differential Revision: D1364180
Silence notice when fetching unset property via reflection

Summary: PHP5 doesn't throw an unset notice when we attempt
to fetch an unset value from a reflected object, so we shouldn't.

Closes #2013

Reviewed By: @JoelMarcey

Differential Revision: D1364543
Fix some arm bugs exposed by the tracelet region selector

Summary: I'm not sure why these weren't happening with analyze, but they're
real issues:
- When I did my vmfp/sp/pc refactor I missed a few accessors that need to be
  the unsafe versions.
- ARM::BackEnd::emitFwdJmp was unimplemented, and it's needed by the main
  codegen loop to link blocks together sometimes.

Reviewed By: @oyamauchi

Differential Revision: D1365090
Increase write lease's kStandardHintExpireInterval to 1500

Summary: I noticed some bad interleaving of translations in the TC that
suggested the write lease was expiring too soon.  So I experimented
with different values and tuned it.

Reviewed By: @swtaarrs

Differential Revision: D1365796
Add JIT support for Unbox bytecode instruction

Summary: I noticed we were always InterpOne'ing this instruction, and HHBBC
seems to have caused it to be generated more often (for cases it can
prove the result of a function is always boxed), resulting in bytecode
sequences like: FCallD ; BoxRNop ; Unbox

Reviewed By: @swtaarrs

Differential Revision: D1365851
remove cruft from RuntimeOption

Summary: The users of these were all removed over the years and these weren't deleted.

Reviewed By: @jdelong

Differential Revision: D1366696