Intermediate language
View article
Domain-Specific Multi-Level IR Rewriting for GPU: The Open Earth Compiler for GPU-accelerated Climate Simulation Open
Most compilers have a single core intermediate representation (IR) (e.g., LLVM) sometimes complemented with vaguely defined IR-like data structures. This IR is commonly low-level and close to machine instructions. As a result, optimization…
View article
Learning Shared Semantic Space for Speech-to-Text Translation Open
Having numerous potential applications and great impact, end-to-end speech translation (ST) has long been treated as an independent task, failing to fully draw strength from the rapid advances of its sibling -text machine translation (MT).…
View article
pi-GAN: Periodic Implicit Generative Adversarial Networks for 3D-Aware Image Synthesis Open
We have witnessed rapid progress on 3D-aware image synthesis, leveraging recent advances in generative visual models and neural rendering. Existing approaches however fall short in two ways: first, they may lack an underlying 3D representa…
View article
Tapir Open
This paper explores how fork-join parallelism, as supported by concurrency platforms such as Cilk and OpenMP, can be embedded into a compiler's intermediate representation (IR). Mainstream compilers typically treat parallel linguistic cons…
View article
A new verified compiler backend for CakeML Open
We have developed and mechanically verified a new compiler backend for CakeML. Our new compiler features a sequence of intermediate languages that allows it to incrementally compile away high-level features and enables verification at the …
View article
HPVM Open
We propose a parallel program representation for heterogeneous systems, designed to enable performance portability across a wide range of popular parallel hardware, including GPUs, vector instruction sets, multicore CPUs and potentially FP…
View article
AnyDSL: a partial evaluation framework for programming high-performance libraries Open
This paper advocates programming high-performance code using partial evaluation. We present a clean-slate programming system with a simple, annotation-based, online partial evaluator that operates on a CPS-style intermediate representation…
View article
Dynamic Entity Representation with Max-pooling Improves Machine Reading Open
Sosuke Kobayashi, Ran Tian, Naoaki Okazaki, Kentaro Inui. Proceedings of the 2016 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. 2016.
View article
A Survey on Malware Detection with Graph Representation Learning Open
Malware detection has become a major concern due to the increasing number and complexity of malware. Traditional detection methods based on signatures and heuristics are used for malware detection, but unfortunately, they suffer from poor …
View article
REFINE Open
Compiler-based fault injection (FI) has become a popular technique for resilience studies to understand the impact of soft errors in supercomputing systems. Compiler-based FI frameworks inject faults at a high intermediate-representation l…
View article
Bitext Mining Using Distilled Sentence Representations for Low-Resource Languages Open
Scaling multilingual representation learning beyond the hundred most frequent languages is challenging, in particular to cover the long tail of low-resource languages. We move away from the popular one-for-all multilingual models and focus…
View article
Formally verified speculation and deoptimization in a JIT compiler Open
Just-in-time compilers for dynamic languages routinely generate code under assumptions that may be invalidated at run-time, this allows for specialization of program code to the common case in order to avoid unnecessary overheads due to un…
View article
Visualizing Attention in Transformer-Based Language Representation\n Models Open
We present an open-source tool for visualizing multi-head self-attention in\nTransformer-based language representation models. The tool extends earlier work\nby visualizing attention at three levels of granularity: the attention-head\nleve…
View article
CrowdFormer: An Overlap Patching Vision Transformer for Top-Down Crowd Counting Open
Crowd counting methods typically predict a density map as an intermediate representation of counting, and achieve good performance. However, due to the perspective phenomenon, there is a scale variation in real scenes, which causes the den…
View article
Lifting Assembly to Intermediate Representation Open
Translating low-level machine instructions into higher-level intermediate language (IL) is one of the central steps in many binary analysis and instrumentation systems. Existing systems build such translators manually. As a result, it take…
View article
A Persistent Spatial Semantic Representation for High-level Natural\n Language Instruction Execution Open
Natural language provides an accessible and expressive interface to specify\nlong-term tasks for robotic agents. However, non-experts are likely to specify\nsuch tasks with high-level instructions, which abstract over specific robot\nactio…
View article
Visualizing Attention in Transformer-Based Language Representation Models Open
We present an open-source tool for visualizing multi-head self-attention in Transformer-based language representation models. The tool extends earlier work by visualizing attention at three levels of granularity: the attention-head level, …
View article
Lattice surgery translation for quantum computation Open
In this paper we outline a method for a compiler to translate any non fault tolerant quantum circuit to the geometric representation of the lattice surgery error-correcting code using inherent merge and split operations. Since the efficien…
View article
Just-in-time data structures Open
Today, software engineering practices focus on finding the single “right” data representation for a program. The “right”' data representation, however, might not exist: changing the representation of an object during program execution can …
View article
Reconciling high-level optimizations and low-level code in LLVM Open
LLVM miscompiles certain programs in C, C++, and Rust that use low-level language features such as raw pointers in Rust or conversion between integers and pointers in C or C++. The problem is that it is difficult for the compiler to implem…
View article
RandIR: differential testing for embedded compilers Open
This paper describes RandIR, a tool for differential testing of compilers using random instances of a given intermediate representation (IR). RandIR assumes no fixed target language but instead supports extensible IR-definitions through an…
View article
Scalable Syntax-Aware Language Models Using Knowledge Distillation Open
Prior work has shown that, on small amounts of training data, syntactic neural language models learn structurally sensitive generalisations more successfully than sequential language models. However, their computational complexity renders …
View article
Boosting Neural Networks to Decompile Optimized Binaries Open
Decompilation aims to transform a low-level program language (LPL) (eg.,\nbinary file) into its functionally-equivalent high-level program language (HPL)\n(e.g., C/C++). It is a core technology in software security, especially in\nvulnerab…
View article
FPGA design space exploration for scientific HPC applications using a fast and accurate cost model based on roofline analysis Open
High-performance computing on heterogeneous platforms in general and those with FPGAs in particular presents a significant programming challenge. We contend that compiler technology has to evolve to automatically optimized applications by …
View article
BinRec Open
Compile-time specialization and feature pruning through static binary rewriting have been proposed repeatedly as techniques for reducing the attack surface of large programs, and for minimizing the trusted computing base. We propose a new …
View article
isQ: An Integrated Software Stack for Quantum Programming Open
We introduce isQ, a new software stack for quantum programming in an imperative programming language, also named isQ. The aim of isQ is to make programmers write quantum programs as conveniently as possible. In particular, 1) the isQ langu…
View article
Bridge Correlational Neural Networks for Multilingual Multimodal Representation Learning Open
Recently there has been a lot of interest in learning common representations for multiple views of data. Typically, such common representations are learned using a parallel corpus between the two views (say, 1M images and their English cap…
View article
Neural Speech Translation using Lattice Transformations and Graph Networks Open
Speech translation systems usually follow a pipeline approach, using word lattices as an intermediate representation. However, previous work assume access to the original transcriptions used to train the ASR system, which can limit applica…
View article
A Persistent Spatial Semantic Representation for High-level Natural Language Instruction Execution Open
Natural language provides an accessible and expressive interface to specify long-term tasks for robotic agents. However, non-experts are likely to specify such tasks with high-level instructions, which abstract over specific robot actions …
View article
Polarised Intermediate Representation of Lambda Calculus with Sums Open
Dec. 2015: see the added footnote on page 7