From 609d7c755f260e86a865703dc1dcd6df064b1fa0 Mon Sep 17 00:00:00 2001 From: Ben Vanik Date: Wed, 20 Aug 2014 11:35:22 -0700 Subject: [PATCH] Create README.md --- src/alloy/README.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/alloy/README.md diff --git a/src/alloy/README.md b/src/alloy/README.md new file mode 100644 index 000000000..f3b64bcc8 --- /dev/null +++ b/src/alloy/README.md @@ -0,0 +1,30 @@ +alloy: small dynamic recompiler engine +=== + +Alloy is a transpiler framework that allows for pluggable frontends for decoding +guest machine instructions (such as PPC) and pluggable backends for generating +host code (such as x64). It features an SSA IR designed to model machine +instructions and vector operations and compilation passes that seek to efficiently +optimize previously-optimized code. + +Future versions will cache generated code across runs and enable offline +precompilation. + +Frontends +--- + +Frontends are responsible for translating guest machine instructions into IR. +Information about the guest machine and ABI is used to support efficient CPU +state accesses and debug information. + +* PPC64 with Altivec extenions + +Backends +--- + +A backend takes optimized IR and assembles an implementation-specific result. +The backend is also responsible for executing the code it generates and supporting +debugging features (such as breakpoints). + +* IVM: bytecode interpreter +* x64: IA-64 with AVX2 code generator