ottoni afe1b1a705 Don't spill to mmx.
There is not a clear path forward to safely using MMX registers as
scratch storage. Doing so spoils the state of the legacy x87 FPU, and the
x64 ABI uses the x87 FPU to implement long double. Our options are to
either:

  1. Prohibit use of long double in source code (or x87 instructions in
     machine code). Given that we have a dynamically linked binary that
     includes system libraries outside our control, open source that needs
     to be patched, fbcode, etc., this could prove difficult.

  2. Always execute an FPU resetting instruction before transitioning from
     TC code to C++. For all I know, these instructions are cheap, but it
     still seems like an unfortunate overhead to impose everywhere; since
     we don't want to mark every helper with a "reset fpu" call, we'd
     probably end up bloating callsites.

  3. Admit this doesn't work.

In the absence of evidence this matters for perf, I lean towards 3.
2013-03-25 13:31:17 -07:00
2013-03-21 15:01:49 -07:00
2013-03-25 13:31:17 -07:00
2010-02-19 18:02:34 -08:00
2010-02-19 18:02:34 -08:00
2013-03-21 22:01:03 -07:00

HipHop VM for PHP

HipHop VM (HHVM) is a new open-source virtual machine designed for executing programs written in PHP. HHVM uses a just-in-time compilation approach to achieve superior performance while maintaining the flexibility that PHP developers are accustomed to. HipHop VM (and before it HPHPc) has realized >5x increase in throughput for Facebook compared with Zend PHP 5.2.

Required Packages, and Installing and Running HipHop VM

The latest information is available on the wiki.

Contributing to HipHop VM

HipHop VM is licensed under the PHP and Zend licenses except as otherwise noted.

Before changes can be accepted a Contributors Licensing Agreement must be signed and returned.

S
Descrição
Descrição não fornecida
Readme 99 MiB
Linguagens
C++ 59.4%
PHP 34.1%
C 4.1%
Hack 1.4%
CMake 0.3%
Outra 0.6%