2020
DOI: 10.1145/3428197
|View full text |Cite
|
Sign up to set email alerts
|

Certified and efficient instruction scheduling: application to interlocked VLIW processors

Abstract: CompCert is a moderately optimizing C compiler with a formal, machine-checked, proof of correctness: after successful compilation, the assembly code has a behavior faithful to the source code. Previously, it only supported target instruction sets with sequential semantics, and did not attempt reordering instructions for optimization.We present here a CompCert backend for a VLIW core (i.e. with explicit parallelism at the instruction level), the first CompCert backend providing scalable and efficient instructio… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
51
0

Year Published

2021
2021
2024
2024

Publication Types

Select...
3
3
2

Relationship

4
4

Authors

Journals

citations
Cited by 18 publications
(51 citation statements)
references
References 28 publications
(19 reference statements)
0
51
0
Order By: Relevance
“…Optimizing compilers, including gcc, schedule instructions to minimize stalls. The Kalray KV3 port of CompCert schedules instructions inside basic blocks, after register allocation Six et al [2020], but such post-pass scheduling is not available for other architectures. It would be unfair to compare performance between gcc with scheduling and CompCert without.…”
Section: B Necessary Precautionsmentioning
confidence: 99%
See 2 more Smart Citations
“…Optimizing compilers, including gcc, schedule instructions to minimize stalls. The Kalray KV3 port of CompCert schedules instructions inside basic blocks, after register allocation Six et al [2020], but such post-pass scheduling is not available for other architectures. It would be unfair to compare performance between gcc with scheduling and CompCert without.…”
Section: B Necessary Precautionsmentioning
confidence: 99%
“…Because of these two reasons, we run our experiments with a pre-pass (before register allocation) instruction scheduler. It formally checks that the instructions are properly reordered in a manner similar to Six et al [2020]; it will be covered in another publication. This experimental scheduler was developed without access to microarchitectural documentation; improvements may thus be expected in the future.…”
Section: B Necessary Precautionsmentioning
confidence: 99%
See 1 more Smart Citation
“…For instance, our HTL language already allows arbitrary Verilog to appear in each state of the FSMD; currently, each state just contains a single Verilog assignment, but when scheduling is added, it will contain a list of assignments that can all be executed in parallel. We expect to follow the lead of Tristan and Leroy [2008] and Six et al [2020], who have previously added scheduling support to CompCert in a VLIW context, by invoking an external (unverified) scheduling tool and then using translation validation to verify that each generated schedule is correct (as opposed to verifying the scheduling tool itself).…”
Section: Limitations To the Generated Hardwarementioning
confidence: 99%
“…Motivations. Six et al [2020] added instruction scheduling and some peephole optimizations to CompCert (thus creating CompCertSched) at the assembly level, in postpass (after register allocation and final transformations, Fig. 1 and 2).…”
Section: Introductionmentioning
confidence: 99%