Disable translation of CreateCont
Stop parsing URIs at first hashmark

Makes HPHP end URI parsing at a hashmark, if encountered.
Clients shouldn't send them and it's a potential security issue.
Implemented IterInit[K] and IterNext[K] in HHIR.

Implemented IterInit[K] and IterNext[K] in HHIR. Added
support for the loading addresses as arguments to ArgDesc and
cgCallHelper.
Minor tweaks to DumpIR for usability with TRACE

If you want tx64 tracing at the same time as DumpIR, right
now the output interleaves in a bit of mess.  Send the dumps to the
trace facility if it's enabled.
Modify PHPOutput serialization to ensure doubles will parse as doubles

VarExport will output the double 1.0 as "1", but for
reflection we want the fact that it's a double to be preserved in the
output. Now the double 1.0 will be output as "1.0" in PHPOutput mode.
Remove Rematerializable from LdClsMethodCache; remove unused function

If we actually try to rematerialize a LdClsMethodCache, right
now you'll get a crash because cgLdClsMethodCache assumes the label is
non-null, but rematerialization nulls out labels.  It seems to me that
we probably don't want to be in situations where rematerializing these
happens (since they usually should just be stored to an ActRec
location), so just remove the flag rather than making it support a
null label.
Get rid of some "slow" exits, plus some cleanups

A slow exit requests the code to be executed without HHIR (currently
via Tx64, and possibly the interpreter).  These exits should be used
when a runtime condition determines that HHIR is currently incapable
of producing valid code for that tracelet.

Inspecting the code, I found out that a number of places were using
slow traces incorrectly, i.e. for cases where HHIR would produce a new
translation that correctly handles the runtime condition.  So convert
these over to be "normal" exits.

This diff also does some cleanups, including removing unused LdThisNc
instruction, removing label of LdLoc, and reworking genLdLoc.
Use range-for in more places, rename SlotInfo fields for clarity.
Fix some valgrind issues

While trying to debug a g++4.7.1 crash I came across
some valgrind warnings.

One issue was that AsyncFunc was trying to construct
an Exception, which tried to build a backtrace before
things were properly setup. Its also pretty inefficient
to generate a backtrace for every AsyncFunc which is
never used (if an exception is thrown, the backtrace
is overwritten from the thrown exception anyway).
This changes it to use an Exception* instead.
Punt on AllocSpill/FreeSpill for now

These aren't quite working right, so we're disabling for now.
Move jump-related optimizations out of dce

They seem logically unrelated to DCE, and apparently we may
want to do them after regalloc at some point (but this doesn't make
that change).
Delay writing ActRecs to the stack until the next SpillStack

In the immediate term, this lets us consolidate some
adjustments to rbx, but the motivation here is to make it easier to
omit spilling ActRecs for inlined functions.  When we begin the
inlined function, we'll only have done a DefActRec in the FPush*,
instead of an AllocActRec, so if no SpillStack was needed before the
inlined function returns we can just pop it from m_evalStack.  If an
exit trace in the inlined code needs to spill, its SpillStack will
spill the ActRec.
Remove the SpillStack vs. SpillStackAllocAR distinction

Changes guard instructions to modify the stack by returning a
new StkPtr, so we don't have to load all guarded locations with
extendStack.  This means SpillStackAllocAR doesn't ever have to do
anything differently from SpillStack (it only differs in a case where
we are spilling locations above an act rec that we loaded only as a
side-effect of guarding).  After that, move the the responsibility of
logically popping the ActRec to the Call instruction (and account for
pushing ActRecs for NewObj in getStackValue).
Fix Hdf::exists

While looking at a task I discovered that Hdf::exists(const char*)
was broken in some cases, because it created the node, and then
tested to see if it existed.

I rewrote it to lookup the node without creating it.
Print out 'not supported' message when '--parse' option is used

The '--parse' option has never been supported for HHVM, and we silently
fail when this option is used. Let's at least give a more friendly 'not
supported' error message.
add isGenerator to ReflectionFunction
Fix a type error in CGetL2

It should be popping the top of the stack as a gen.
Fix order of command line options vs Tiers overwrites

Command line config options were applied after the Tiers
overwrites were applied - allowing the command line options
to take precedence over the Tiers overwrites. But they're applied
too late to affect which machines a tier overwrite applies to,
or to modify the values of Tiers.*.overwrites before they're
applied. So instead we apply them both before and after, allowing
you to set eg -vTier.devweb.machine=// to make your dev server
get the same settings as devweb, but still ensuring that command
line options take precedence over everything else.
Minor cleanup, mostly in codegen (macro removal)