get rid of HPHP_HOME for cmake

Reviewed By: @sgolemon

Differential Revision: D1274191
Initial support for loops in HHIR

This adds a test case and adds loop support to XLS,
and the reflowTypes() pass. Other compiler passes have
not been tested, and probably will break.

Reviewed By: @bertmaher

Differential Revision: D1275374
Remove X64::CodeGenerator::ifBlock and JccBlock

ifBlock() is the same as a different utility function called
ifThen, and only had one callsite.

JccBlock only had one callsite, and can be done cleanly with
lambda-style

Reviewed By: @swtaarrs

Differential Revision: D1276611
Rename ZendParamMode to ParamCoerceMode

Reviewed By: @alexmalyshev

Differential Revision: D1277241
Kill KindOfIndirect

Apparently once we have static props in RDS, we don't need this anymore.

Reviewed By: @jdelong

Differential Revision: D1274213
Add a mode to always translate with and without region translator

This is intended to eliminate (from measurements, not real life) the
potential overhead of the tracelet region selector. When active, non-Optimize
translations will go through the full translation process with
Translator::analyze and the tracelet region selector, only registering the
results of one of the two in SrcDB.

Reviewed By: @ottoni

Differential Revision: D1264288
func entry: convert "stack trimming" to an enum

... and add explanatory documentation to the header
 file. This removes down on the necessity of commenting boolean
 params.

Reviewed By: @jdelong

Differential Revision: D1253618
get cmake to work on our devserver again

if we start in the root dir, we need the includes before we add the TP dir

Reviewed By: @sgolemon

Differential Revision: D1279320
Corrected the implementation of filter_var_array for null values

HHVM's implementation of `filter_var_array` did not handle null values correctly because of a mismatched check using `isset` instead of the equivalent of `array_key_exists`.
As a bonus, this diff also fixes a discrepency I found during debugging regarding `FILTER_REQUIRE_ARRAY`.

Fixes #1947

Reviewed By: @ptarjan

Differential Revision: D1278354
Recursively get properties of traits for serialization

When serializing classes, hhvm was not fetching properties of traits recursivly, which means if a trait inherited a trait, the sub-trait properties were missing.
This fixes the issue by recursivly fetching trait properties when serializing instances.

Fixes #2162

Reviewed By: @ptarjan

Differential Revision: D1273376
Implemented Memcached::getAllKeys()

The method `Memcachd::getAllKeys` was not implemented, this diff implements it.

Closes #1858

Reviewed By: @ptarjan

Differential Revision: D1275577
Use ifThen in a few more places, instead of Label/asm_label

Reviewed By: @bertmaher

Differential Revision: D1279496
RFC: Prototype selecting whole CFG for profile-guided compilation

This is a quick-and-dirty implementation of a whole-CFG
region selector that just grabs whatever CFG has been profiled up to
this point.  It doesn't pass all the tests yet, but the goal is to
flush out bugs.

Reviewed By: @edwinsmith

Differential Revision: D1278724
XLS tracing and more whitelisted imm-taking opcodes

This attempts to fix a regression introduced by D1151019.

Reviewed By: @bertmaher

Differential Revision: D1218927
change CMakeLists.txt to our coding style

They have atrophied a bit over the years. Lets bring them up to speed. Mostly done by hand and with `:retab` in vim.

Reviewed By: @sgolemon

Differential Revision: D1279142
Clownlist joomla JForm* tests

These are all flakey tests.

Reviewed By: @ptarjan

Differential Revision: D1279871
In profiling mode, break tracelets at control flow merge points

Put a set of block-ending offsets into Func::SharedData, and check them
from instrBreaksProfileBB.

Reviewed By: @swtaarrs

Differential Revision: D1274847
Fix tc-print

Sigh

Reviewed By: @edwinsmith

Differential Revision: D1279781
Support file::// by pulling plain file support from FileStreamWrapper

… into `PlainStreamWrapper`.

The expands `file://` support while removing a special case.  It also disallows relative  `file://`
paths (i.e. hostless URLs).

Fixes #1847.
Closes #1860

Reviewed By: @fredemmott

Differential Revision: D1276826

Pulled By: @ptarjan
allow either company for openssl

They had to change their default. We shouln't care.

Reviewed By: @fredemmott

Differential Revision: D1280158