Fix build breaks in various configurations

Apparently #error isn't the best thing. This fixes a couple build
blockers: building vixl natively on ARM, and building in non-fast-TLS
mode.

Reviewed By: @scannell

Differential Revision: D1029917
Implement ARM::emitCallArrayPrologue

The x64 version of this distinguishes the case where dvs.size() == 1
because then it can use a compare with mem and immediate operands. ARM
can't do that.

Reviewed By: @edwinsmith

Differential Revision: D1028069
Fix type_profiler test

The test output depended on the sort order of equally-likely
types; we don't care about their order, but we do care about frequency
ordering, so bias the output towards integer.

Reviewed By: @scannell

Differential Revision: D1030488
stop yii from see-sawing

yii leaves this file around which is a duplicate of its test. So the autoloader loads it twice. Kill it between runs.

Reviewed By: @JoelMarcey

Differential Revision: D1030682
parse error for 'abstract async' ...

... because it's a meaningless syntax

Reviewed By: @paroski

Differential Revision: D1016954
Disable SQLite memory stats to avoid locking during shutdown

Since bmaurer noticed that we spend a lot of time locking on
memory stats during webserver shutdown, and we don't do anything with
these stats anyways, let's just turn them off.

Reviewed By: bmaurer

Differential Revision: D1030301
Fix linking issue on OS X 10.9 with libc++

ld on OS X 10.9 doesn't seem to be able to locate the ctype.h
functions (ex. isdigit) when they are used as function pointers, so wrap
them in lambdas.

Reviewed By: @markw65

Differential Revision: D1030137
Zend parity with file() for blank files

file() shouldn't return null for a blank file. Do what Zend
 does, return an empty array.

CLoses #1216

Reviewed By: @JoelMarcey

Differential Revision: D1030231

Pulled By: @scannell
Remove blacklisted Xhp type

We no longer need this special case.

Reviewed By: @jdelong

Differential Revision: D1029228
Add various stack-flavor-only Nop opcodes; use them instead of MetaInfo

These instructions do nothing.  They match up for the cases
that we currently use metadata to nop things out, except FPassC
(because FPassC is already always a no op).  I'll remove
MetaInfo::NopOut in a separate diff on top of this to perflab it
separately.

Reviewed By: @edwinsmith

Differential Revision: D1025494
Remove MetaInfo::Kind::NopOut

Unused after D1025494

Reviewed By: @edwinsmith

Differential Revision: D1025500
Relax invariant about empty eval stack at starts of try blocks

I don't think anything in the system actually requires this,
so we might as well not have the rule.

Reviewed By: @edwinsmith

Differential Revision: D1025601
Encode NewArray capacity hints in the bytecode, with a NewArrayReserve op

This makes it easy to keep it around during the
bytecode-to-bytecode thing.

Reviewed By: @edwinsmith

Differential Revision: D1025556
Various runtime changes related to hhbbc

Mostly exposing some fields on the FooEmitters, consts, and
other small things like that.  This is split off in an attempt to make
the code review a little easier.

Reviewed By: @markw65

Differential Revision: D1025651
Fix bytecode spec for DecodeCufIter

It claims it pushes a bool, but it doesn't.

Reviewed By: @edwinsmith

Differential Revision: D1029315
Some tweaks to continuation opcodes in bytecode.specification

We put the top of stacks toward the right in the spec.  Also,
make it a little clearer that CreateCont and CreateAsync unset locals
on the current frame.

Reviewed By: @edwinsmith

Differential Revision: D1029381
Fix slow/intercept tests to pass DynamicInvokeFunctions to compiler

Modify one of the tests so it fails with the wrong options
and pass the right ones, add a similar test for static member
functions.  It appears DynamicInvokeFunction is ignored for member
functions (but member functions are inspected for a "dyn_" prefix??),
so I added norepo for the ones that do intercept on member functions.

Reviewed By: @swtaarrs

Differential Revision: D1029398
Add a PopA instruction

This aids in implementing strength reduction if you can
constant propagate to instructions taking a classref when there is a
*D form.  (E.g. AGetL; ClsCns converting to ClsCnsD, FPushClsMethod ->
FPushClsMethodD, etc.)

Reviewed By: @bertmaher

Differential Revision: D1029405
Add a BreakTrackHint hhbc instruction

HHBBC sometimes infers that functions return Bottom
(i.e. infinite loop or always throw).  In this case, after the FCall,
I want to insert a String "static analysis error"; Fatal sequence, but
that sequence ends up included in the Tracelet that does the FCall.
One way to break it is to have the analyze pass / region selectors
recognize this pattern, but it seems that this might come up in other
contexts where ahead-of-time analysis may have good reasons to suggest
tracelet breaks (e.g. to avoid our "double tail" problem on control
flow diamonds, or maybe StaticLoc?).

Reviewed By: @swtaarrs

Differential Revision: D1029595
Another bytecode spec tweak for WFooIter instructions

I messed up how they treat %4 in the last update.

Reviewed By: @dariorussi

Differential Revision: D1029665