vault backup: 2024-06-29 00:04:48
This commit is contained in:
parent
c3d4904b36
commit
6d5c64f351
@ -4,6 +4,7 @@ Copy and patch is a novel compilation technique introduced in the above paper th
|
|||||||
|
|
||||||
They provide two example use cases, a compiler for a C-like language, and a WebAssembly compiler, and show promising results for both startup time and execution performance.
|
They provide two example use cases, a compiler for a C-like language, and a WebAssembly compiler, and show promising results for both startup time and execution performance.
|
||||||
|
|
||||||
|
# Performance Results
|
||||||
(Bottom of Page 2):
|
(Bottom of Page 2):
|
||||||
> Our compiler achieves both lower startup delay and better execution performance than prior baseline compilers. Figure 2 shows the performance of six WebAssembly compilers on the PolyBenchC benchmark, normalized to our performance. Our compiler has 6.5× lower startup delay than Liftoff, while generating on average 63% better-performing code.
|
> Our compiler achieves both lower startup delay and better execution performance than prior baseline compilers. Figure 2 shows the performance of six WebAssembly compilers on the PolyBenchC benchmark, normalized to our performance. Our compiler has 6.5× lower startup delay than Liftoff, while generating on average 63% better-performing code.
|
||||||
|
|
||||||
@ -14,6 +15,9 @@ One proposed use case of copy-and-patch compilation in the paper is as an SQL qu
|
|||||||
(Halfway through Page 3):
|
(Halfway through Page 3):
|
||||||
> The compilation time of our compiler is so low that it is less than the time it takes to construct the AST of the program. Compared with interpreters, both have negligible startup delay (since constructing ASTs takes longer), but our execution performance is an order of magnitude faster. Compared with LLVM -O0, our implementation compiles two orders of magnitude faster and generates code that performs on average 14% better. Therefore, we conclude that copy-and-patch renders both interpreters and LLVM -O0 compilation obsolete in this use case.
|
> The compilation time of our compiler is so low that it is less than the time it takes to construct the AST of the program. Compared with interpreters, both have negligible startup delay (since constructing ASTs takes longer), but our execution performance is an order of magnitude faster. Compared with LLVM -O0, our implementation compiles two orders of magnitude faster and generates code that performs on average 14% better. Therefore, we conclude that copy-and-patch renders both interpreters and LLVM -O0 compilation obsolete in this use case.
|
||||||
|
|
||||||
|
# Implementation Details
|
||||||
|
At a broad level, copy and patch code compilation works by having a pre-built library of composable binary code snippets, referred to as binary stencils. This makes both code generation and optimization a simple task, achieved simply by performing a lookup in
|
||||||
|
|
||||||
# Terminology
|
# Terminology
|
||||||
| Phrase | Definition |
|
| Phrase | Definition |
|
||||||
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||||
|
Loading…
Reference in New Issue
Block a user