Make the region compiler more conservative when doing inline decrefs at RetC

The region compiler was counting Type::None as an "uncounted"
type when deciding whether it should emit an inline sequence of
decrefs at the end of a function vs. calling a helper.  In
cache_get_scb, this leads to a sequence of 52 DecRefLoc's in a row,
which just can't be good for icache.

Reviewed By: @edwinsmith

Differential Revision: D994936
* is added to indicate the current line of code

insert a start to indicate the current line of code if colorization is off.

Reviewed By: @mikemag

Differential Revision: D983975
Move emitFallbackJmp stuff out of TranslatorX64

This is starting to broach the thorny issue of what we do about all the
jump emitting and smashing machinery in the SrcDB family. I think I'll
end up factoring out all that logic into its own module which knows how
to emit and smash jumps on all platforms.

Reviewed By: @jdelong

Differential Revision: D995736
Replace some EvalSimulateARM checks

Once we start trying to run on ARM hardware, we'll need to start doing
some stuff differently. The idea here is to separate the questions "are
we emitting ARM code?" and "are we running the ARM simulator?".

Not all checks of the flag are gone; in particular, the stuff that reads
the simulator's stack pointer, and that sets it up in enterTC, should
actually be checking if we're simulating.

I'm open to suggestions on naming; I just wanted something terse.

Reviewed By: @jdelong

Differential Revision: D995817
Change git hash for phpbb3. Check for git hash changes in the code. Allow the forced regeneration of expect files.

The phpBB folks fixed their tests as a result of some of our findings. This precipitated a change in the git has we were using to download the source code. Also, this required us to check whether a git hash has changed and, if so, redownload the entire framework. Also added a capability to force a regeneration of an expected results for for a given framework. This could be useful after a redownload or other occasions.

Thanks @alexmalyshev for the heads up re: the phpBB source change.

Reviewed By: @ptarjan

Differential Revision: D996779
stop populating TRACK_VARS_REQUEST

There is no code in php-src that relies on this, and the variable that holds it doesn't even have space for a 7th entry.

Reviewed By: @scannell

Differential Revision: D997179
Don't let a pointer to a local escape its scope

This code was written before tvScratch existed, and this is exactly
what tvScratch is intended for.

Reviewed By: @markw65

Differential Revision: D995591
Add pgo shortcut to test/run

So I don't have to remember options

Reviewed By: @ottoni

Differential Revision: D996775
Remove box_value wrapper function, call RefData::Make directly

To do this I changed RefData::Make to take a TV.  I like the
result, but feel free to disagree and I'll change it back.

Reviewed By: @jdelong

Differential Revision: D992097
Side exits are conditional

so its best not to smash them with unconditional jmps

Reviewed By: @jdelong

Differential Revision: D997385
Use a global litstr table in RepoAuthoritative/WholeProgram mode

When we're building a repo in WholeProgram mode, create a
single unified Litstr table for all static strings that we encounter
in all units, and use this table when running in RepoAuthoritative
mode.  This appears to save ~100MB of repo compared to the previous
method that stores strings for each unit separately in the UnitLitstr
table, since we had a lot of duplication.

Still use the UnitLitstr if we're not doing WholeProgram/RepoAuth,
because multiple processes attempting to use the same repo can try to
write the same string with different IDs, and that causes all sorts of
problems.  We could maybe deal with that by getting the database
involved when try to get a litstr ID, but that seems more complicated
than it's worth.

Reviewed By: @markw65

Differential Revision: D985326
Add values() method to collections, StrictIterable, LazyIterable, etc.

All keyed collections (and KeyedIterables in general) have a keys() method,
but only Map and StableMap have a values() method. This diff adds values()
to all collections and the relevant traits and helper classes.

Reviewed By: @elgenie

Differential Revision: D990602
Make neo its own static lib
Move TargetCache out of Transl:: and rm using directives of TargetCache

If we want to keep the namespace, we should make the naming
such that using directives aren't needed.  (Follow up diffs will make
the naming reasonable.)

Reviewed By: @edwinsmith

Differential Revision: D989131
Rename TargetCache:: to RDS::

In its own diff for reviewability.

Reviewed By: @edwinsmith

Differential Revision: D989132
Move runtime/vm/jit/target-cache.h to runtime/base/rds.h

Separate diff for rebase-ability and reviewability.

Reviewed By: @edwinsmith

Differential Revision: D989134
Cleaning up RDS, part 1

This is a quick start of cleaning up and documenting the RDS
(formerly target cache) module.  This diff contains:

  - a few renames to make things reasonable wrt the containing namespace

  - make Class::wouldCall a non-member function

  - various additional renames of "target cache" to "RDP"

  - the start of some documentation about what it is

Reviewed By: @markw65

Differential Revision: D989135
Remove various dead code relating to fb_rename_function

Apparently there used to be an API to limit the renamable
functions to a particular set, but this no longer exists.  Delete code
related to it.

Reviewed By: @bertmaher

Differential Revision: D989168
Remove FixedFuncCache, refactor LdFuncCache* instructions

FixedFuncCache was just one helper function which called
autoload.  The translations used offsetofs on FixedFuncCache even
though they were using allocFixedFunction to get the Handle now.  Move
the runtime helper out of the RDS namespace since it really didn't do
anything with RDS stuff (just calls loadFunc).  Changed LdFuncCached*
implementations to use extra-data.  Also I opted it back out of
native-calls, since it seems initially confusing to learn that it did
more than just a native call, and a cgCallHelper seemed clearer when
it does more than just a call: no need to go look up what it calls in
the other .cpp.

Reviewed By: @bertmaher

Differential Revision: D989157
ASAN build fixes for vixl

Never tried the vixl tests under ASAN before, this fixes a couple bugs.

Reviewed By: @edwinsmith

Differential Revision: D998518