106 lines
3.6 KiB
Typst
106 lines
3.6 KiB
Typst
//#import "@preview/clean-acmart:0.0.1": acmart, acmart-ccs, acmart-keywords, acmart-ref, to-string
|
|
#import "clean-acmart.typ": acmart, acmart-ccs, acmart-keywords, acmart-ref, to-string
|
|
#import "@preview/cetz:0.3.4"
|
|
|
|
#let title = [Dataflow Analysis for Compiler Optimization]
|
|
#let authors = (
|
|
(
|
|
name: "Matthias Veigel",
|
|
email: "matthias.veigel@uni-ulm.de",
|
|
department: [Institute of Software Engineering and Programming Languages],
|
|
institute: [University Ulm]
|
|
),
|
|
)
|
|
|
|
#show: acmart.with(
|
|
title: title,
|
|
authors: authors,
|
|
copyright: none
|
|
//page: "A4"
|
|
// Set review to submission ID for the review process or to "none" for the final version.
|
|
// review: [\#001],
|
|
)
|
|
|
|
#set figure(supplement: [Fig.])
|
|
#show figure.caption: it => [
|
|
*Fig #context it.counter.display(it.numbering)*
|
|
#it.body
|
|
]
|
|
|
|
#set heading(numbering: "1.1.1")
|
|
|
|
= Abstract
|
|
// define DFA here or in introduction
|
|
todo
|
|
|
|
= Introduction
|
|
todo
|
|
|
|
= Methodology
|
|
== Objective and research questions
|
|
The goal of this research paper is to find claims about the advantages and disadvantages of using dataflow analysis for compiler optimization and where DFA is already implemented in Compilers.
|
|
This goal has been defined in two research questions:
|
|
- RQ1 --- What are the advantages and disadvantages of using dataflow analysis for compiler optimization? \
|
|
This questions aims to identify which advantages DFA has over other optimization techniques and which disadvantages it has when used.
|
|
|
|
- RQ2 --- How is dataflow analysis used in current compilers? \
|
|
This questions aims to identify how DFA is already used in current compilers and if it is used during normal compilation or if it has to be explicitly enabled.
|
|
|
|
== Search and selection strategy
|
|
My search strategy consisted of 4 steps as seen in @sas_fig.
|
|
|
|
#place(
|
|
bottom + center,
|
|
scope: "parent",
|
|
float: true,
|
|
[
|
|
#set par(leading: 0.55em)
|
|
#figure(
|
|
caption: [Search and selection process],
|
|
cetz.canvas({
|
|
import cetz.draw: *
|
|
let bs = (3.3, 1.4)
|
|
|
|
rect((0, 0), (rel: bs), name: "acm")
|
|
rect((0, -1.7), (rel: bs), name: "ieee")
|
|
rect((0, -3.4), (rel: bs), name: "springer")
|
|
rect((0, -5.1), (rel: bs), name: "websci")
|
|
rect((bs.at(0)+1.5, -2.55), (rel: bs), name: "dup")
|
|
rect((bs.at(0)*2+2.25, -2.55), (rel: bs), name: "sel")
|
|
rect((bs.at(0)*3+3, -2.55), (rel: bs), name: "snow")
|
|
rect((bs.at(0)*4+3.75, -2.55), (rel: bs), name: "inc")
|
|
|
|
line("acm.east", (rel: (0.75, 0)), name: "dlu")
|
|
line("ieee.east", (rel: (0.75, 0)))
|
|
line("springer.east", (rel: (0.75, 0)))
|
|
line("websci.east", (rel: (0.75, 0)), name: "dld")
|
|
line("dlu.end", "dld.end", name: "dl")
|
|
|
|
set-style(mark: (end: ">"))
|
|
line("dl.50%", "dup.west")
|
|
line("dup.east", "sel.west")
|
|
line("sel.east", "snow.west")
|
|
line("snow.east", "inc.west")
|
|
|
|
content("acm", align(center)[ACM Digital Library \ n = ])
|
|
content("ieee", align(center)[IEEExplore \ n = ])
|
|
content("springer", align(center)[Springer Link \ n = ])
|
|
content("websci", align(center)[Web of science \ n = ])
|
|
content("dup", align(center)[Duplicate removal \ n = ])
|
|
content("sel", align(center)[Application of \ Selection Criteria \ n = ])
|
|
content("snow", align(center)[Snowballing \ n = ])
|
|
content("inc", align(center)[Papers included \ n = ])
|
|
})
|
|
) <sas_fig>
|
|
]
|
|
)
|
|
|
|
#bibliography("refs.bib", title: "References", style: "association-for-computing-machinery")
|
|
|
|
#colbreak(weak: true)
|
|
#set heading(numbering: "A.a.a")
|
|
|
|
= Artifact Appendix
|
|
In this section we show how to reproduce our findings.
|
|
|