DS
D.G. Sprokholt
10 records found
1
Beyond Traditional Lexing
Exploiting SIMD Instructions for Tokenizing C
Over the past decades, Single Instruction, Multiple Data (SIMD) instructions have become common- place in conventional hardware. Lexical analysis, the first stage of compilation, can take advantage of this by splitting its workload across sub lexers that identify groups of tokens
...
Build systems are essential tools for compiling codebases of any complexity. In order to maximize performance, they use parallelism to complete multiple build steps simultaneously. In this thesis, we examine the effectiveness with which common build systems distribute work acro
...
Memory Layout Optimisation on Abstract Syntax Trees
Impact on Utilisation Speed During Type Checking and Code Generation Phases
In the field of software engineering, the speed of compilation plays a crucial role in enhancing development productivity. This thesis investigates the impact of optimising the memory layout of Abstract Syntax Trees (ASTs) on the performance of the type checking and code generati
...
Efficient Term-Rewriting Super-Optimisation
Specialising Rulesets to Reduce Time Requirements for Compiler Optimisation
Term-rewriting super-optimisation during compilation uses rewrite rules in order to restructure a provided code expression into the optimal form, comparing different expressions using a cost function. To reduce the compilation time taken by term-rewriting, the ruleset can be opti
...
Comparative Analysis of Linking Efficiency
Evaluating LLD and mold through Insights into Performance Metrics and Architectural Differences in Software Linking Processes
This study examines the differences between two modern linkers, LLD and mold, focusing on their efficiency during software development. Although the linking process, which combines multiple object files into a single executable, typically occupies a minor fraction of the total co
...
The superoptimizer STOKE has previously been shown to be effective at optimizing programs containing floating-point numbers. The STOKE optimizer obtains these results by running a stochastic search over the set of all programs and selecting the best-optimized one. This study aims
...
Superoptimization is the idea of creating the most optimal program possible from a given input program. Equality saturation is a method of superoptimization using rewrite rules and e-graphs. A rewrite rule defines a piece of code that can be rewritten as another part while keepin
...
Modern compilers exploit syntax \& semantics to optimize input programs.
Often such optimization rules are arduous to get right and the output is not guaranteed to be globally optimal.
Superoptimizers take a different approach to this problem by traversing the program ...
Often such optimization rules are arduous to get right and the output is not guaranteed to be globally optimal.
Superoptimizers take a different approach to this problem by traversing the program ...
STOKE is one of the Superoptimizers which are programs that given a function and a set of instructions of a processor, traverse through a space of programs that compute a given function and try to find the optimal usually in terms of execution speed or size of the binary. Authors
...
Computer architectures with weak memory models, such as ARMv8 and ARMv7, allow memory accesses to be reordered in many situations.
Therefore, weak memory models may cause a program to exhibit more behavior than a strong memory model, such as x86.
Fency is a static analysi ...
Therefore, weak memory models may cause a program to exhibit more behavior than a strong memory model, such as x86.
Fency is a static analysi ...