Results 161 to 170 of about 10,356 (199)
Some of the next articles are maybe not open access.

LLVM parallel intermediate representation

Proceedings of the Second Workshop on the LLVM Compiler Infrastructure in HPC, 2015
We extend the LLVM intermediate representation (IR) to make it a parallel IR (LLVM PIR), which is a necessary step for introducing simple and generic parallel code optimization into LLVM. LLVM is a modular compiler that can be efficiently and easily used for static analysis, static and dynamic compilation, optimization, and code generation.
Dounia Khaldi   +4 more
openaire   +1 more source

Weak Memory Models as LLVM-to-LLVM Transformations

2016
Data races are among the most difficult software bugs to discover. They arise from multiple threads accessing the same memory location, a situation which is often hard to discern from source code alone. Detection of such bugs is further complicated by individual CPUs' use of relaxed memory models. As a matter of fact, proving absence of data races is a
Vladimír Štill   +2 more
openaire   +1 more source

Devirtualization in LLVM

Proceedings Companion of the 2017 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity, 2017
Devirtualization is an optimization changing indirect (virtual) calls to direct calls. It improves performance by allowing extra inlining and removal of redundant loads. This paper presents a novel way of handling C++ devirtualization in LLVM by unifying virtual table loads across calls using different SSA values to represent different dynamic types.
openaire   +1 more source

A LLVM based compiler for COFFEE

16th IEEE International Symposium on Object/component/service-oriented Real-time distributed Computing (ISORC 2013), 2013
LLVM has gained its popularity from both industrial side and academic side due to its well-defined architecture and good support for parallel programming. The purpose of this paper is to explain essential concepts which must be understood by complier developers in order to carry on the implementation of LLVM based compiler and also share experiences ...
Zhang Guoqing, Ahonen Tapani
openaire   +1 more source

Tutorial: LLVM for Security Practitioners

2020 IEEE Secure Development (SecDev), 2020
Many security researchers need to build tools that analyze and transform code. For example, researchers may want to build security hardening tools, tools that find vulnerabilities within software, or tools that prove that a program is invulnerable to attack.
openaire   +1 more source

An llVM backend for GHC

ACM SIGPLAN Notices, 2010
In the presence of ever-changing computer architectures, high-quality optimising compiler backends are moving targets that require specialist knowledge and sophisticated algorithms. In this paper, we explore a new backend for the Glasgow Haskell Compiler (GHC) that leverages the Low Level Virtual Machine (LLVM) , a ...
David A. Terei, Manuel M.T. Chakravarty
openaire   +1 more source

A Simulator for LLVM Bitcode

2017
In this paper, we introduce an interactive simulator for programs in the form of LLVM bitcode. The main features of the simulator include precise control over thread scheduling, automatic checkpoints and reverse stepping, support for source-level information about functions and variables in C and C++ programs and structured heap visualisation ...
Ro��kai, Petr   +1 more
openaire   +1 more source

Taming undefined behavior in LLVM

Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation, 2017
A central concern for an optimizing compiler is the design of its intermediate representation (IR) for code. The IR should make it easy to perform transformations, and should also afford efficient and precise static analysis. In this paper we study an aspect of IR design that has received little attention: the role of undefined behavior.
Juneyoung Lee   +7 more
openaire   +1 more source

Heterogeneous Computation Migration on LLVM

2016
In past decades, the development of mobile applications was limited due to lack of enough computational power. To resolve this problem, the framework of mobile cloud computing (MCC) was proposed for offloading the massive computation tasks of mobile applications onto cloud centers for execution.
Tyng-Yeu Liang, Yu-Jie Lin
openaire   +1 more source

Multi-dimensional Vectorization in LLVM

Proceedings of the 5th Workshop on Programming Models for SIMD/Vector Processing, 2019
Loop vectorization is a classic technique to exploit SIMD instructions in a productive way. In multi-dimensional vectorization, multiple loops of a loop nest are vectorized at once. This exposes opportunities for data reuse, register tiling and more efficient memory accesses.In this work, we present TensorRV, a multi-dimensional vectorization framework
Simon Moll   +3 more
openaire   +1 more source

Home - About - Disclaimer - Privacy