Temporarily stop the ini_get_all_* test pain

Summary: Before we have a mutiny, we should rethink how we want this test to optimally work.
Apparently the value of some runtime options change more often than first thought.

So, skipping the test for now, until we come up with the right solution. Options are:

  # Whitelist only the option names and values that are likely to be used externally and we want to track. **What are those options?**
  # Have the test only catch name changes, additions, removals? This would lessen pain, but could still cause minor annoyance.
  # Get rid of this test completely and document the settings in code and make sure we have detailed code review on option changes? **Brainstorm: Is an arc diff hook possible here??**

Reviewed By: @jdelong

Differential Revision: D1609762
Raise calls in vasm to new vcall instruction

Summary: vcall encapsulates much more information about a call than the raw
call instruction, which is necessary for emitting llvm from vasm. For direct
x64 code generation, a lowering pass converts the vcall into what would've been
emitted before this diff.

Reviewed By: @maksfb

Differential Revision: D1593725
Remove Vout::m_area

Summary: It should always point to a valid block, so just get the area from
that.

Reviewed By: @maksfb

Differential Revision: D1602828
Vasm pretty printing part 3

Summary: The register allocation phase inserts a lot of instructions
without giving them origins. This patch fixes that.

Reviewed By: @swtaarrs

Differential Revision: D1607032
Fixed vfsstream touch test cases.

Summary: Expose STREAM_META_ constants to hhvm runtime.
Closes https://github.com/facebook/hhvm/pull/3955

Reviewed By: @paulbiss

Differential Revision: D1610551
Use FixedVector for Class::m_[sp]initVec

Summary: This saves 32 bytes, bringing Class down to 280 in the lowptr build.
It's not quite a size class down yet, but it gets us that much closer.

Reviewed By: @jdelong

Differential Revision: D1609365
Shrink Class to 256 bytes

Summary: Shrink some fields that seem like they can be safely shrunk, apply
LowPtr, and move some stuff around.  Also reduce SProp from 56 to 48 bytes by
moving a field.

Reviewed By: @jdelong

Differential Revision: D1610488
Use a global cache for timezone info

Summary: Instead of caching the same info in every thread, share it using a
global AtomicHashArray.  I also considered pre-computing all the tzinfo, but a
good number of them seem unlikely to be used, so they'd just be taking up
space.

Reviewed By: @mclarkelauer

Differential Revision: D1607602
Admin Port for getting random apc entries and size

Summary: Added admin port for getting random apc entries and size. It takes a
count variable, defaults to one, and returns that number of random apc entries.

Reviewed By: @bertmaher

Differential Revision: D1599813
Only execute nextIntersect's linear search when necessary.

Summary: Two intervals that conform to SSA can only intersect if the definition point
of one is inside one of the other's live ranges. (or vice versa). Take advantage
of this by short-circuiting the intersection test when two intervals cannot
intersect.

Also add a few more intersection-avoidance checks:
  - never try to compute the next intersection of a fixed interval whos register
    is already live or with a regular interval whos register is already blocked by
    a fixed interval
  - if the current interval ends before another starts, don't bother with the linear
    search since they cannot intersect.

Reviewed By: @markw65

Differential Revision: D1591098
Explicitly destroy the singletons

Summary: Make sure they're destroyed before we exit

Reviewed By: @bertmaher

Differential Revision: D1610009
Replace Vunit::roots with a single entry block

Summary: We don't need multiple roots. All code should be reachable from a
single entry block. The only complication was bindaddr. It's now roughly
analogous to the other service request instructions in that it lives in the
code block that references it and directly emits the service request itself to
frozen.

Reviewed By: @edwinsmith

Differential Revision: D1603594
Remove outputDependsOnInput

Summary: No longer used

Reviewed By: @bertmaher

Differential Revision: D1610553
Remove NormalizedInstruction::changesPC

Summary: Nothing uses it.

Reviewed By: @swtaarrs

Differential Revision: D1610566
Remove default cases in uses of translator-instrs.h

Summary: Removing the defaults gives you a compile error when you add a new
opcode.  (Don't be alarmed about the nops in the interp one list: we skip those
first using isAlwaysNop, although we probably ought to just call an empty
emitFoo function ...)

Reviewed By: @swtaarrs

Differential Revision: D1610564
Add option to run perf to hhvm_wrapper

Summary: HHVM wrapper is handy for compiling a bytecode repo and running
hhvm with that repo in one easy step. Often times we'd like to run perf
record on just the hhvm step. Adding a CLI option will make that easier.

Reviewed By: @jdelong

Differential Revision: D1611783
Minor fix to variable name in Huffman benchmark

Summary: Some benchmarking tools depend on the regular naming of the benchmark suite
variable in each benchmark. Huffman breaks the rule, so we need to fix it now.

Reviewed By: @edwinsmith

Differential Revision: D1611826
Unroll AKExists into a series of comparisons on small static arrays

Summary: This is meant to go hand-in-hand with my other change to transform calls
to `in_array` into AKExists, though of course this will benefit organic
uses of AKExists too.

The CFG this generates is suboptimal. It generates a series of diamonds
(one per element of the haystack array) whereas it would ideally result
in something like this:

```
B1 --F--> B2 --F--> B3 --F--+
|         |         |       |
T         T         T       |
|         |         |       |
v         v         v       v
             Bdone
```

I'd have to expose additional API in IRBuilder to do this (since the
HhbcTranslator code would have to create and append its own Blocks) and
I wasn't sure it would be worthwhile. The worst that will happen is a
few redundant unconditional jumps, which we should actually be able to
optimize away downstream.

Reviewed By: @edwinsmith

Differential Revision: D1599893
Added support for ReflectionFunction::getClosureThis() [closes #3476]

Summary: PHP supports ReflectionFunction::getClosureThis() since version 5.4.0.
Added one test to slow section in norepo mode, since closure binding does not work in repo yet (3e290683d8504c74570343aee66da45863db8adf).
Closes #3476.
Closes https://github.com/facebook/hhvm/pull/3943

Reviewed By: @paulbiss

Differential Revision: D1608061
Allow non-variant args when inlining NativeImpl

Summary: Change CoerceStk to call a (new) version of tvCoerceParamInPlace
which throws an exception on failure instead of returning false.

Update the unwinder to handle tvCoerceException in CoerceStk's
catch block. Add CheckSideExit to allow for this while also
branching to the unusual cleanup behavior required for inlined
builtins in the case of regular exceptions.

This should noticeably reduce the HNI call overhead
and open up the rest of the conversions to continue
without hurting perf.
@sgolemon@swtaarrs got this most of the way there already,
just cleaning things up a bit.

Reviewed By: @swtaarrs

Differential Revision: D1414528