Global ETD Search
Search theses and dissertations gathered from participating repositories worldwide. Every result links back to the library that holds it. No account is needed.
Results
Showing 1 to 20 of 40 for “"LLVM"”.
-
Closing the gap in the LLVM backend of K
… formal semantics of languages. We dive into the LLVM backend, one of the engines for concrete execution, and implement key functionality that is present in the other concrete execution engine. We then add a new interface that is unique to the LLVM backend, making this backend diverge from the …
-
Modeling Recursion with Iteration: Enabling LLVM Loop Optimizations for Recursive Data Structure Traversal
… in modern compiler infrastructures like LLVM. This thesis explores a novel technique that temporarily transforms recursive traversals into synthetic loop-like structures, enabling existing loop-specific optimizations to apply, before transforming them back. By extending Clang’s semantic …
-
A verification framework suitable for proving large language translations
… we define a complete operational semantics of LLVM in K, named K-LLVM, including the specifications of all instructions and intrinsic functions in LLVM, as well as the concurrency model of LLVM. Third, to verify the correctness of the K-LLVM operational model, we create an axiomatic model, …
-
AMIBE: an Imperative Programming Language with First Class Continuations
… class continuation -- AMIBE. AMIBE uses the LLVM compiler infrastructure which is attractive for its optimizing tools and overall modern organization. However, LLVM does not support the implementation of continuation via a direct manipulation of the system stack. To move the execution state …
-
Design and Implementation of a Scala Compiler Backend Targeting the Low Level Virtual Machine
… that targets the Low Level Virtual Machine (LLVM). Targeting LLVM allows compilation of Scala programs to optimized native executables and enables implementation techniques that are not possible on the JVM. We discuss the design and implementation of this backend and evaluate its ability to …
-
Reducing Compilation Latency in the Julia Programming Language
… performance computing language that employs an LLVM-based just-in-time compiler and an LLVM-based ahead-of-time compiler to produce optimized machine code. When Julia uses its just-in-time compiler, compilation of methods must be done before methods can begin execution, which presents as a delay …
-
Hybrid Static/Dynamic Type Safety for C/C++ Programs
… for C/C++ programs. It is built using the LLVM compiler infras- tructure and provides type safety for programs that have been compiled to the LLVM IR. The thesis also discusses the design of static analysis to reduce the overhead of the dynamic type checker. We present an implementation of …
-
Compacting Loads and Stores for Code Size Reduction
… memory addresses into a single operation. The LLVM compiler contains a specific memory optimization to perform this combining of memory operations, called ARMLoadStoreOpt. This optimization, however, relies on another optimization (ARMPreAllocLoadStoreOpt) to move eligible memory operations …
-
Open-source high-level synthesis of tensorflow dataflow graphs using LegUp
… Level Optimizer (HLO). This is translated into LLVM intermediate representation (IR) using a modified version of XLA's CPU backend. These modifications enable users to leverage IP modules for computation-intensive operations. For a simple instance of matrix multiply, using even a naively …
-
Optimizing Parallel Performance with Work and Span in the OpenCilk Compiler
… multicore computing. OpenCilk consists of a LLVM fork called Tapir and a runtime scheduler, which, together, allow for OpenCilk’s high performance in practice. However, there are many opportunities to improve on the implementation of OpenCilk. In particular, current grainsize calculations for …
-
Optimizing Vector Instruction Selection for Digital Signal Processing
… (geometric mean of 12%) than the Halide and LLVM vector instruction selectors that have been developed over the past decade.
-
Dynamic Invariant Generation for Concurrent Programs
… invariant generator, which consists of a new LLVM based code instrumentation tool, an INSPECT based thread interleaving explorer, and a customized inference engine inside Daikon. We have evaluated the resulting system on public domain multithreaded C/C++ benchmarks. Our experiments show that …
-
Translation validation for compilation verification
Modern optimizing compilers such as LLVM and GCC are huge and complex, and mature releases routinely have uncaught bugs. Beyond harm to software development, the lack of formal correctness guarantees for the compilation process seriously limits the guarantees other software systems can provide, …
-
Fault prophet : a fault injection tool for large scale computer systems
… framework for the tool is based on LLFI, a LLVM fault injection tool, which I modified to support an end-to-end scenario for program testing purposes. The modifications and addition provide greater modularity of the tool by abstracting the input and output of the different components of the …
-
Exploring design decisions for mutation testing
… intermediate representation (IR), e.g., for the LLVM IR and Java bytecode/IR. Compiler optimizations are automatic program transformations applied at the IR level with the goal of improving a measure of program performance, while preserving program semantics. Applying mutations at the IR level …
-
How should compilers represent fork-join parallelism?
… code transformations. To prototype Tapir in the LLVM compiler, for example, the Tapir team added or modified about 6000 lines of LLVM's 4-million-line codebase. Tapir enables LLVM's existing compiler optimizations for serial code -- including loop-invariant-code motion, commonsubexpression …
-
Automated communication and floorplan-aware hardware/software co-design for SoC
… various communication types and integration into LLVM-based integer linear programming for HW/SW task partitioning, (3) fast and efficient search algorithm to extract maximum operating frequency using floorplanner, and (4) back-annotation of extracted information to system level for iterative …
-
Brute-force resistant Pointer-Authentication using RISC-V co-processor
… with binaries instrumented through a custom LLVM pass. Experiments are conducted on both a Verilator-based Rocket Chip simulation and a Xilinx VCU118 FPGA implementation. Results indicate that PAC instrumentation incurred a performance overhead of 1.3% to 5.8%, with average slowdowns …
-
PACTIGHT: Tightly Seal Sensitive Pointers with Pointer Authentication
… four defenses by fully integrating with the LLVM compiler toolchain. Through a robust and systemic security and performance evaluation, we show that PACTight defenses are more efficient and secure than their counterparts. We evaluated PACTight on 30 different applications, including NGINX web …
Page 1 of 2