Add support for `fallback' to vasm-arm

Summary: code-gen-arm can generate this instruction, which just aborts the
process right now.

Reviewed By: @bertmaher

Differential Revision: D1707290

Signature: t1:1707290:1417041764:d0fb4e0e1611af800add18984946b04e9c018dfc
Remove IRREGULAR_INSTRS and PSUEDOINSTRS

Summary: Normalize how everything calls hhbc-translator, so we can generate it.
Some of the blockers to doing this earlier are gone (inlining is no longer in
ir-translator), so most of this is just straight-forward; the one bummer is
some bits of information are still only available in NormalizedInstruction
right now, so we have to make HhbcTranslator have access to it on each
bytecode.  We can gradually weed that out later.

Reviewed By: @swtaarrs

Differential Revision: D1701003
Use OPCODES instead of REGULAR_INSTRS

Summary: Now that everything is supported we don't need a separate macro to
generate this.

Reviewed By: @alexmalyshev

Differential Revision: D1701007
Remove IRTranslator

Reviewed By: @alexmalyshev

Differential Revision: D1701009
Automatically look up Ids for AA and SA args

Reviewed By: @alexmalyshev

Differential Revision: D1701011
Remove translator-instrs.h, expand macros at only remaining use site

Reviewed By: @swtaarrs

Differential Revision: D1701013
Move interpone-related code to hhbc-translator-interpone.cpp

Reviewed By: @swtaarrs

Differential Revision: D1701443
Make HhbcTranslator not (effectively) a global variable

Summary: Clean up stuff slightly, so that HhbcTranslator's lifetime is
associated with a lexical scope.  Also fix a few easy things that were members
of Translator for no apparent reason.

Reviewed By: @bertmaher

Differential Revision: D1702328

Signature: t1:1702328:1416944361:d42a042f42e1fed4817ce14d878eb2adc463a516
Make translateRegion not a member of a Translator::

Summary: This seemed easy enough but I'm leaving the rest of mcg and tx alone
for now (I'm trying to de-monolithify HhbcTranslator, not these ;)

Reviewed By: @alexmalyshev

Differential Revision: D1702341

Signature: t1:1702341:1416879534:b6692222517fa5ebf68ddb085f7695a00d7cb4ea
Move MInstrEffects to its own .{h,cpp}

Reviewed By: @alexmalyshev

Differential Revision: D1707003

Signature: t1:1707003:1417041990:52bbdbd615384a1508e1193ef9e0fb6b14cb142f
Disable default_parameter hh tests

Summary: They are failing locally for several people and have been for a while.

Reviewed By: @nigelchanyk

Differential Revision: D1709251

Signature: t1:1709251:1417458268:0c4a1ad229ea992e7ac20621051abea0f3366b8f
Fixes kohana test_formatted_time test case

Summary: public function provider_formatted_time()
	{
		return array(
			// Test the default format
			array('2010-04-16 17:00:00', '5:00PM 16th April 2010'),
			// Now we use our own format
			// Binary date!
			array('01/01/2010 01:00', '1AM 1st January 2010', 'd/m/Y H:i'),
			// Timezones (see #3902)
			array('2011-04-01 01:23:45 Antarctica/South_Pole', '2011-04-01 01:23:45', 'Y-m-d H:i:s e', 'Antarctica/South_Pole'),
			array('2011-04-01 01:23:45 Antarctica/South_Pole', '2011-03-31 14:23:45 Europe/Paris', 'Y-m-d H:i:s e', 'Antarctica/South_Pole'),
			array('2011-04-01 01:23:45 Antarctica/South_Pole', @​1301574225', 'Y-m-d H:i:s e', 'Antarctica/South_Pole'),
		);
	}
public function test_formatted_time($expected, $datetime_str, $timestamp_format = NULL, $timezone = NULL)
{
	$timestamp = Date::formatted_time($datetime_str, $timestamp_format, $timezone);

	$this->assertSame($expected, $timestamp);
}

HHVM will fail the in the fifth data set.
Closes https://github.com/facebook/hhvm/pull/4304

Reviewed By: @fredemmott

Differential Revision: D1697221

Signature: t1:1697221:1417476325:ddcfd3a57250f1d5415561cd4bf5a62689aa2dc7
Added Atom Plugin

Summary: Closes https://github.com/facebook/hhvm/pull/4340

Reviewed By: @jwatzman

Differential Revision: D1704784

Signature: t1:1704784:1417477025:60ed0dda7a390b78faceb5df9f6790ca1619d055
EZC: fix 'Z' type in zend_parse_parameters()

Summary: For both 'Z' and vararg '*' types in zend_parse_parameters(), a zval**
needs to be returned to the caller. I previously thought that temporary
storage would be needed for this, but in fact you can just point to the
TypedValue pref member.
Closes https://github.com/facebook/hhvm/pull/4330

Reviewed By: @sgolemon

Differential Revision: D1701584

Signature: t1:1701584:1417478162:f5f16e0305079f1f8552329a0b0ad5461497c516
Change the object-iteration api to forEachObject(lambda)

Summary: Instead of exposing iterators.

Reviewed By: @markw65

Differential Revision: D1709881
Main converter for AT

Summary: This plumbs together the other bits, to actually read, munge,
and re-write a PHP file. Still a couple features missing, notably doing
this nicely over a directory and actually being able to specify
loose/strict, but it at least is vaugely usable at this point.

Reviewed By: @ptarjan

Differential Revision: D1700788

Signature: t1:1700788:1417468009:ec149ff55ddba4e4a96c77ce123e199cc28d9d5f
Makefile for AT

Summary: So external folks can build it :) Requires pfff installed via
opam, and ocaml 4.

Reviewed By: @int3

Differential Revision: D1702193

Signature: t1:1702193:1416877798:fc14915958b9b6ddfe2121b3e4b80e155dd8989d
Support Switch/SSwitch vasm instructions in llvm backend

Summary: This diff adds support for enough instructions for the basic switch
statements in the new test case to work in the llvm backend. I added dummy
support for bindjcc2nd since that's used for bounds checking, but it will trap
if the jump is taken (until we can smash jumps).

Reviewed By: @jasone

Differential Revision: D1705102
Implement phi{def,jmp,jcc} in LLVM back end.

Reviewed By: @jasone

Differential Revision: D1705223
Remove shebang and +x from frameworks test runner

Summary: It is not a valid assumption that '#!/usr/bin/env php' is HHVM. Force people to specify
refs facebook/hhvm#4341

Reviewed By: @JoelMarcey

Differential Revision: D1710053

Signature: t1:1710053:1417458141:29e3a4a3dee80f567e08f279d51b3adff163fa38