grin-compiler / grin

GRIN is a compiler back-end for lazy and strict functional languages with whole program optimization support.
https://grin-compiler.github.io/
1.02k stars 36 forks source link

Related articles #1

Open andorp opened 6 years ago

andorp commented 6 years ago

Articles that can be useful in the future.

csabahruska commented 5 years ago

Analysing, Transforming and Compiling Lazy Functional Programs (1997) http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.35.4551

Other papers from the author: https://www.researchgate.net/profile/Karl-Filip_Faxen

csabahruska commented 5 years ago

Exceptional GRIN (Christof Douma's master thesis) https://github.com/uhc/uhc/blob/master/EHC/text/grinc/exceptionalgrin-final.pdf

exception support for GRIN

csabahruska commented 5 years ago

Extending the UHC LLVM backend: Adding support for accurate garbage collection. Paul van der Ende. www.cs.uu.nl/education/scripties/pdf.php?SID=INF/SCR-2009-059

csabahruska commented 5 years ago

Implementing Lazy Functional Languages on Stock Hardware: The Spineless Tagless G-machine

csabahruska commented 5 years ago

Incremental whole program optimization and compilation

csabahruska commented 5 years ago

Lambdachine Combination of GRIN and STG http://files.catwell.info/misc/mirror/tracing-jit-haskell-schilling.pdf https://github.com/nominolo/lambdachine tracing-jit-haskell-schilling.pdf

andorp commented 5 years ago

Exponential Functor and recursive schemas: http://comonad.com/reader/2008/rotten-bananas/

csabahruska commented 5 years ago

Staged Abstract Interpreters: Fast and Modular Whole-Program Analysis via Meta-Programming

andorp commented 5 years ago

Effect-Driven QuickChecking of Compilers Midtgaard-al-ICFP17-full.pdf

csabahruska commented 5 years ago

"Multi-Level Intermediate Representation" Compiler Infrastructure https://github.com/tensorflow/mlir

https://drive.google.com/file/d/1hUeAJXcAXwz82RXA5VtO5ZoH8cVQhrOK/view

SIL BB arguments https://www.youtube.com/watch?v=Ntj8ab-5cvE&feature=youtu.be&t=596

LLVM 2.0 Design learnings https://www.youtube.com/watch?v=VeRaLPupGks

csabahruska commented 5 years ago

Points-to Analysis by Type Inference of Programs with Structures and Unions http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.51.1358&rep=rep1&type=pdf

csabahruska commented 5 years ago

Sparse Bidirectional DataFlow Analysis as a Basis for Type Inference

andorp commented 5 years ago

Generic Programming With Adjunctions GenericProgrammingWithAdjunctions.pdf

andorp commented 5 years ago

Types as abstract interpretations Cousot-POPL97-p316-331-1997.pdf

csabahruska commented 5 years ago

Compositional Shape Analysis by means of Bi-Abduction Related to/uses separation logic.

csabahruska commented 5 years ago

Efficient Points-To Analysis based on CFL-Reachability Summarisation

csabahruska commented 5 years ago

m-CFA: Resolving and Exploiting k-CFA Paradox Illuminating Functional vs. Object-Oriented Program Analysis

Alternate Control-Flow Analyses for Defunctionalization in the MLton Compiler

Pushdown Control-Flow Analysis for Free

andorp commented 5 years ago

https://plum-umd.github.io/abstracting-definitional-interpreters/

andorp commented 5 years ago

http://www.kframework.org/index.php/Main_Page

csabahruska commented 5 years ago

Staged Abstract Interpreters Fast and Modular Whole-Program Analysis via Meta-Programming

csabahruska commented 5 years ago

LoCal: a language for programs operating on serialized data (2019)

andorp commented 4 years ago

Counting Immutable Beans

csabahruska commented 4 years ago

Liveness-Based Pointer Analysis fast flow and context sensitive points-to analysis

csabahruska commented 4 years ago

Performance optimization on Declarative Points-to Analysis using the Souffle Datalog Engine (describes how to model context sensitive analyses in datalog)

Toward Parallel CFA with Datalog, MPI, and CUDA

csabahruska commented 4 years ago

Sharing Analysis + EVAL inlining + Unboxing = Deforestation

csabahruska commented 4 years ago

Compiler Auto-Vectorization with Imitation Learning Supporting Separate Compilation in a Defunctionalizing Compiler

csabahruska commented 4 years ago

Abstract Allocation as a Unified Approach to Polyvariance in Control-flow Analyses Allocation Characterizes Polyvariance Introspective Polyvariance for Control-Flow Analyses

andorp commented 4 years ago

Defunctionalisation as Modular Closure Conversion

csabahruska commented 4 years ago

From folklore to fact: Comparing implementations of stacks and continuations

csabahruska commented 4 years ago

Garbage Collection Using a Finite Liveness Domain (2020)

csabahruska commented 4 years ago

Prefetching in Functional Languages

csabahruska commented 4 years ago

ASAP implementation: https://github.com/doctorn/micro-mitten

csabahruska commented 4 years ago

data flow analysis = type inference Data-Flow Analyses as Effects and Graded Monads

csabahruska commented 4 years ago

Binary-Level Type Inference using Datalog

csabahruska commented 4 years ago

Type inference implementation in Datalog and Prolog: Automatic Type Inference via Partial Evaluation

csabahruska commented 3 years ago

Reconciling Semantics and Reflection Formalisms, Protocols, Applications and Architecture http://fare.tunes.org/tmp/phd/thesis.pdf http://fare.tunes.org/reflection.html https://www.youtube.com/watch?v=heU8NyX5Hus https://www.youtube.com/watch?v=fH51qhI3hq0

csabahruska commented 3 years ago

Sources and implementation of the ICFP 2020 paper "Elaboration with First-Class Implicit Function Types" by András Kovács. https://github.com/AndrasKovacs/implicit-fun-elaboration/tree/staging

csabahruska commented 3 years ago

Perceus: Garbage Free Reference Counting with Reuse https://www.microsoft.com/en-us/research/uploads/prod/2020/11/perceus-tr-v1.pdf NOTE: it was inspired by the Counting Immutable Beans paper

csabahruska commented 3 years ago

Type theory elaboration implementation https://www.youtube.com/playlist?list=PL2ZpyLROj5FOt99f_KCxARvd1hDqKns5b

csabahruska commented 3 years ago

A High-Performance Multicore IO Manager Based on libuv (Experience Report) https://raw.githubusercontent.com/ZHaskell/stdio/master/docs/A%20High-Performance%20Multicore%20IO%20Manager%20Based%20on%20libuv%20(Experience%20Report).pdf

https://www.reddit.com/r/haskell/comments/6sc9og/why_libuv_why_multicore_combine_libuv_with_ghc_rts/

andorp commented 3 years ago

Incrementalizing Static Analyses in Datalog https://openscience.ub.uni-mainz.de/handle/20.500.12030/5617

csabahruska commented 3 years ago

Parallel incremental whole-program optimizations for Scala.js https://dl.acm.org/doi/10.1145/3022671.2984013

dmjio commented 3 years ago

A Framework for Selective Recompilationin the Presence of Complex Intermodule Dependencies https://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=618727F10C6186056DEB8418CAF7ECF9?doi=10.1.1.83.7284&rep=rep1&type=pdf

csabahruska commented 3 years ago

What is contification? https://julesjacobs.com/2019/03/09/what-is-contification.html

csabahruska commented 3 years ago

Language Support for Programming High-Performance Code https://publikationen.sulb.uni-saarland.de/bitstream/20.500.11880/27016/1/pflichtexemplar.pdf NOTE: good overview for vectorisation

csabahruska commented 3 years ago

SIMD@OpenMP: A Programming Model Approach to Leverage SIMD Features https://www.tdx.cat/bitstream/handle/10803/334171/TDLCdG1de1.pdf?sequence=5.txt

csabahruska commented 3 years ago

Liberate Abstract Garbage Collection from the Stack by Decomposing the Heap https://link.springer.com/content/pdf/10.1007%2F978-3-030-44914-8_8.pdf https://twitter.com/krgermane/status/1381809615596220422

Kinds Are Calling Conventions https://www.microsoft.com/en-us/research/uploads/prod/2020/03/kacc.pdf

https://blog.cloudflare.com/building-fast-interpreters-in-rust/ http://neilmitchell.blogspot.com/2020/04/writing-fast-interpreter.html

csabahruska commented 3 years ago

Control-Flow Analysis of Functional Programs https://tidsskrift.dk/brics/article/view/21936

good overview for CFA and related analyses

csabahruska commented 3 years ago

VeGen, The Vectorizer Generator for SIMD and Beyond https://dl.acm.org/doi/10.1145/3445814.3446692 https://www.youtube.com/watch?v=uwNAnC2y8ds

csabahruska commented 3 years ago

Lecture Notes on Static Analysis http://www.itu.dk/people/brabrand/static.pdf

good intro material