PHP for IoT and Embedded Systems


HHVM is now fully-functional on ARM hardware! Announced Max Wang in a blog post.The blog post which is deeply technical, explains in detail how HHVM ARM port have been implemented. You should guess that it’s not only about PHP for embedded systems, as PHP build for arm already exists for many years, however HHVM the HipHop Virtual Machine, just support it today.

HHVM was created as the successor of the HipHop for PHP (HPHPc) PHP execution engine, which is a PHP-to-C++ transpiler that has also been created by Facebook. The new support for ARM will open new opportunities to new applications.

HHVM may be up and running on AArch64, but there’s still plenty of work left to do. Some ideas for exploration to improve the performance of HHVM on ARM include:

  • Use 2MB pages for hot functions in .text, and try out larger page sizes for jitted code.
  • Leverage post-compile-time dynamic code relocation to shrink already-smashed jump sequences in jitted code.
  • Interleave main and cold code sections in the TC to avoid indirect jumps due to large offsets.
  • Align jump targets.
  • Implement more peephole passes to reduce jitted code size.

If you’d like to join in the work on the ARM port, or just stay up-to-date on our progress, feel free to subscribe to the mailing list for the ARM effort. You can also post on HHVM’s Facebook group, or contact the dev team on IRC in #hhvm-dev on Freenode.