Skip to content

Commit

Permalink
Merge e03c73c into 0c4faf5
Browse files Browse the repository at this point in the history
  • Loading branch information
Anabra committed Nov 16, 2019
2 parents 0c4faf5 + e03c73c commit 49f5ba5
Show file tree
Hide file tree
Showing 95 changed files with 6,743 additions and 0 deletions.
6 changes: 6 additions & 0 deletions papers/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,10 @@
*.out
*.gz
*.listing
*.vrb
*.uN9447
*.snm
*.nav
**/_minted-main/
*.pygtex
*.pygstyle
File renamed without changes.
File renamed without changes.
File renamed without changes.
Binary file not shown.
File renamed without changes.
File renamed without changes.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added papers/eutypes-2019/presentation/img/hpt-boq.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added papers/eutypes-2019/presentation/img/title.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
83 changes: 83 additions & 0 deletions papers/eutypes-2019/presentation/prez.notes
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
Intro to GRIN:
- the problem (small functions, laziness)
- GRIN is the solution (interprocedural, whole, IR)

- store, fetch, update
- eval
- (other restrictions ...)

- 5-6 (*)

- simple code generation
- many small transformations
- HPT is the core

- 6-7

Extensions:
- LLVM (sum simple?)
- new HPT:
- original: for node info
- then: node info with simple type info (for LLVM)
- finally: type inference (polymorph primops)

- 8-9 -1 (less HPT)

- Dead Data Elimination

Dead Data Elimination:
- first by Remi Turk for Agda
- motivational example: (*)
- length (List -> Nat)
- other applications:
- Map -> Set
- type class dictionaries
- Vector type index (EUTypes)

- 11-12

- what else do we need?
- CBy (extended HPT, example) (*)
- LVA (standard)
- producer grouping (graph example) (*)
- transformations

- 14-15

Results:
- only interpreted results
- pipeline setup
- diagrams

- 18 - 19

Conclusions:
- the optimizer works well:
- #stores, #fetches, #funcalls and #cases significantly reduced
- code structure closer to imperative style

- DDE is:
- a bit costly
- kinda specific, but can work wonders
- can trigger other transformations

- 20


Q&A:
- Why do we need Lambda? (closure conversion + lambda lifting)
cc: find free variables
ll: convert lambdas to top level functions

- eval inlining ~?~ STG + eval/apply -> GRIN with indirect calls (funptr) + static analysis
- analysis cost: compiled abstract interpretation


no stores & no fetches --> in ideal case, everything can be put into registers (in worst onto the stack)


Notes:
- upto example (with head?)
- LLVM code example
- opt list
- max 25 slides
59 changes: 59 additions & 0 deletions papers/eutypes-2019/presentation/template.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
\documentclass[bigger]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{graphicx}

\usebackgroundtemplate%
{%
\includegraphics[width=\paperwidth,height=\paperheight]{background.jpg}%
}

\setbeamercolor{title}{fg=white}
\setbeamercolor{author}{fg=white}
\setbeamercolor{institute}{fg=white}
\setbeamercolor{date}{fg=white}
\setbeamercolor{frametitle}{fg=white}

\title{\bf Sample title}
\author{Anonymous}
\institute{Eötvös Loránd University (ELTE), \\ Budapest, Hungary}
\date{2018.}

\begin{document}

{
\usebackgroundtemplate{\includegraphics[width=\paperwidth]{title.jpg}}%
\frame{\vspace{15mm}\titlepage}
}

\begin{frame}{Introduction}
\begin{itemize}
\item 1
\item 2
\item 3
\end{itemize}
\end{frame}

% this slide need not be used in the presentation, but must be
% present when you archieve your talk

{
\usebackgroundtemplate{\includegraphics[width=\paperwidth]{title.jpg}}%
\begin{frame}{}

\bigskip\bigskip\bigskip

{\bf\Huge\color{white} THANK YOU}

\bigskip

{\bf\Huge\color{white} FOR YOUR}

\bigskip

{\bf\Huge\color{white} ATTENTION!}

\end{frame}
}

\end{document}
Binary file added papers/eutypes-2019/presentation/tex/main.pdf
Binary file not shown.
Loading

0 comments on commit 49f5ba5

Please sign in to comment.