VASM initial code drop

Summary: This is a squashed diff of just the new vasm code, without changes
to hhvm to use it (yet).

Reviewed By: @jasone

Differential Revision: D1452965
Import php tests from php 5.5.11

Summary: This diff re-imports all the tests from PHP 5.5.11.

Reviewed By: @ptarjan

Differential Revision: D1432267
Assert that we only get loops with Eval.JitLoops=1

Summary: In the title.

Reviewed By: @ottoni

Differential Revision: D1457680
Raise the logging level for 'after tracelet formation'

Summary: This stuff is largely the same as 'after initial translation', and seems
to me to be a little excessive for logging level 2. Raising it to 3.
(And changing some const to constexpr)

Reviewed By: @edwinsmith

Differential Revision: D1461826
Sanitize non-utf8 content in test output

Summary: Ran into this with a test which outputs cp1251 text
which json_encode (rightly) barfs on.  This results in the
test's diff output being reduced to null which is singularly
unhelpful in test output.

Use UConverter::transcode() to turn anything that isn't UTF-8
into the Unicode WTF character U+FFFD.

Hopefully we don't get too many of these kinds of tests.

Reviewed By: @ptarjan

Differential Revision: D1462059
Turn off JIT::Timer by default in OSS build

Summary: In the absence of our special __vdso_clock_gettime_ns syscall, it
falls back to getrusage. The former is fast enough that there's no reason to
not have it on by default but the same isn't true of the latter.

Reviewed By: @jdelong

Differential Revision: D1461996
reserve space in thrift compact reader for collections

Reviewed By: @elgenie

Differential Revision: D1460153
Changed signature of onNewConnection in Acceptor to take non-const TransportInfo

Summary: We need to modify TransportInfo in non open source code for
integrating SSL Fingerprinting.

Reviewed By: dcsommer

Differential Revision: D1462392
Belatedly update NEWS for Notorious

Reviewed By: @edwinsmith

Differential Revision: D1462813
add variadic function to fb_intercept test

Summary: ... to demonstrate an issue.

Reviewed By: @billf

Differential Revision: D1463572
fb_intercept now accounts for variadic functions

Summary: ... when determining the params of a call to an intercepted
 variadic function, the variadic capture param on the stack is an array
 that need to be iterated through, rather than passed along directly.

Reviewed By: @billf

Differential Revision: D1463583
D1462392 Breaks HHVM Open Source Build

Summary: This reverts commit ed18f617bfc4d809b7e3d3514ce40303d60361c9.

In the slew of test failues that were overriden was an important one...

```
Fail	hhvm cmake verification
build page No binary found.
```

No binary found means the compile failed.

Reviewed By: @LiraNuna

Differential Revision: D1463229
Compute FPI PrepKinds using method names in hhbbc

Summary: This is one thing hphpc still does that hhbbc doesn't.  But the code
that sets Expression::RefValue into the context bits is incorrect if you don't
run the inferTypes pass, so we can't use it if we want to stop doing that.
Redoing the optimization here is pretty easy.

Reviewed By: @edwinsmith

Differential Revision: D1443303
Add more reduce() cases for FPassR and FPassV

Summary: The cases here were less complete than I thought (I forgot I left some
out because reduce() doesn't support nesting, but it can't really use that
anyway).  Surprisingly this seems to get rid of all of the FPassV opcodes in
www (after D1444820 added some).

Reviewed By: @jano

Differential Revision: D1445476
Support nested uses of reduce() in hhbbc

Summary: The implementation of reduce and impl claim you aren't allowed to nest
opcodes that do reduce calls, but the code was doing it anyway.  In practice we
were never hitting the case, but we do after turning off FPassC/V changes in
emitter.cpp, so now we should support it, which isn't too hard.

Reviewed By: @edwinsmith

Differential Revision: D1447745
Compute AttrNoOverride functions in hhbbc instead of using hphpc's version

Summary: The bits coming in claim that private functions that are overridden
have AttrNoOverride.  So, let's throw the incoming bits away and recompute it
here.

Reviewed By: @jano

Differential Revision: D1444777
Disable FPassC and FPassV lowering in emitter.cpp

Summary: They apparently can make incorrect transformations, and if you turn
off inferTypes and postOptimize even more so (because Expression::RefValue is
apparently invalid without those passes).  Hhbbc now mostly does the same
FPI-passing optimizations (a little more conservatively, but hopefully also
more correctly), so if it's in the noise in perflab let's switch.

Reviewed By: @edwinsmith

Differential Revision: D1444820
Share more code in FCall* opcodes, fix a bug in FCallArray and FCallUnpack

Summary: Neither FCallArray nor FCallUnpack were properly handling functions
that never return (the latter copied the bug from the former).  This wasn't a
problem 'in practice' for FCallArray because currently it never has a resolved
func on the ActRec right now (because FPushCuf doesn't try to figure out which
func you're calling), but it was possible to cause hhbbc to crash with an
unpacking call to a function that can't return.  Fix this while setting up the
code to share a little more of the logic.

This diff also makes it so FCall (non-D) with a known resolved func will try to
look up the return type.  This can happen with the new kind of name-only
function resolution from D1443303, but currently they don't ever produce return
types better than TInitGen, so it's a no-op for now.

Reviewed By: @elgenie

Differential Revision: D1448343
Remove a few no-longer-needed emitter WholeProgram things

Reviewed By: @alexmalyshev

Differential Revision: D1451034
Improve hhbbc's behavior for builtin return types

Summary: If we don't know the type, we can still apparently check AttrReference
to avoid an UnboxR.  Also, apparently the returnType is set even for non-HNI
builtins.

Reviewed By: @jano

Differential Revision: D1454754