Make exception tests less picky about how many frames it takes to cause a stack overlow

These exception tests use stack overflow, but they were brittle. 5 and 6 were checking the line the overflow occurs on, and I think that was unnecessary. The point of those two is that something doesn't happen on overflow, not the line the overflow occurs on. 3 and 4 want to see that objects left on the stack are destructed. For those I switched to using some counts, and check them in a shutdown function.

With this change all tests in test/quick pass with ASAN on.

Reviewed By: @scannell

Differential Revision: D987024
Do not emit a source context for the full function body when emitting an implicit function return.

When the compiler inserts an implicit function return statement, there is no source context for the return and the source context defaults to the context of the entire function. This causes execution to stop at implicit returns and the debugger to display a bizarre source context. It also causes every single line in a file to be considered a valid breakpoint location, even blank lines and lines with comments. The code for inserting implicit returns now overrides the source context with a dummy and the code for creating the source line map now ignores dummies.

Reviewed By: @mikemag

Differential Revision: D987159
Temporarily disable ext_zend tests that rely on arrays

Reviewed By: @ptarjan

Differential Revision: D988751
Substr_compare warning parity with Zend

Zend Compatibility: substr_compare should raise warnings when
offset and length parameters are invalid.

Reviewed By: @alexmalyshev

Differential Revision: D989609

Pulled By: @scannell
prctl is Linux-only

prctl should only be included when using NUMA

Reviewed By: @sgolemon

Differential Revision: D990526
Make moveToAlign's interface platform-agnostic

I think we can start sharing little things like this across platforms.
This makes it so that ARM code can call the same function as the x64
code, and we don't need to duplicate anything.

I also cleaned up emitNAryStub while I was at it, since it's only used
with Arity = 1. And the "unreachable" argument was never used.

Reviewed By: @jdelong

Differential Revision: D990058
Update SSATmp's of locals when we do a CheckLoc

We weren't propagating type information from a CheckLoc in
the region translator, because we weren't updating m_locals to have a
new SSATmp with the proper type.

Reviewed By: @ottoni

Differential Revision: D989639
Remove ; from command ends
require -z for importer

I thought running all the bad tests would be useful, but it turns out I've never done that. Lets just require you to have a zend checkout

Reviewed By: @scannell

Differential Revision: D988254
make use ($this) an error

matching zend. I killed all the uses of it in www and right before this pushes, I'll kill whatever is left on the wednesday.

Reviewed By: @paroski

Differential Revision: D804982
Fixed incompatibility of str_replace with Zend

Fixed incompatibility of str_replace with Zend

Closes #1106

Reviewed By: @ptarjan

Differential Revision: D989582

Pulled By: @scannell
Increase iterations of some vm-perf benchmarks

big and nbody both have a substantial amount of time spent in
the JIT.  Increase the iteration count to focus on generated code
perf.

Reviewed By: @ottoni

Differential Revision: D990726
SPL autoload handlers should use context of registration

SPL autoload functions need to capture the context in which they are registered and be called in that context. This comes up when a class method is registered as an autoload handler that is private and/or calls private methods -- the accessibility checks fail without using the proper context. Thus, save off a CufIter and use that to invoke the function instead of just a function object. This fixes a Zend test as well.

Closes #1020

Reviewed By: @markw65

Differential Revision: D976387
mkdir to return false when path already exists

mkdir should return false if the path already exists to match
Zend

Closes #1113
Closes #1114

Reviewed By: @JoelMarcey

Differential Revision: D990897

Pulled By: @scannell
Merge pull request #1116 from ZDroid/patch-1

Remove ; from command ends
Make clearstatcache() signature Zend compatible

clearstatcache() does nothing, but the function signature is not
the same as Zend so unnecessary warnings are raised.

Closes #1115
Closes #1117

Reviewed By: @JoelMarcey

Differential Revision: D991348

Pulled By: @scannell
Implement USE_INCLUDE_PATH for file functions

Implement File::USE_INCLUDE_PATH for functions eg:
file_get_contents, fopen, file_exists etc.
Closes issue #837 and move tests to good folder, copy dependency file
from Zend PHP for tests

Closes #837
Closes #1110

Reviewed By: @ptarjan

Differential Revision: D989689

Pulled By: @scannell
Get X64 out of emitGuardChecks & transitive dependencies

This was a spurious coupling; the only reason the assembler object was
used was to emit stats-counter increments. I agnostified the interface
to that as well, which turned out to be pretty easy. I'll put a branch
inside emitInc for ARM support.

I discovered that the cc parameter (which was another x64 coupling) was
unused, so I deleted it.

Reviewed By: @edwinsmith

Differential Revision: D991443
Update NEWS for Tabasco release

Reviewed By: @jdelong

Differential Revision: D990847
Move runtime helpers out of codegen

This is pure code movement.  After this the only runtime
functions left in code-gen are the ccmp_* family, which I haven't
figured out how I want to deal with yet.

Some of these can probably be cleaned up/killed (you'll notice a few
TODOs that have probably been around for a long time) but I want to
separate that from the code motion for easier review.

Reviewed By: @edwinsmith

Differential Revision: D991360