optimizationstatic code analysiscompilerbackendfrontendcompilerscompiler apicode analysisprogramming languages and development toolsdebuggersdevelopment toolslibraries
Non-Determinacy based optimizations in Parallel Programs
Abhishekvu
Problem : Optimize Parallel Programs by employing Non-Determinacy based optimizations. Plan : 1. Perform static code analysis to identify program...
Graph Based Features for Better ML Guided Live Range Eviction Heuristics
Aiden Grossman
Within this project, I aim to create a new ML model based on the already existing MLGO work in register allocation to further enhance the performance...
Shared Memory Based JITLink Memory Manager
Anubhab Ghosh
When a separate executor process is used with LLVM JIT, the generated code needs to be transferred to the executor process which is done by the...
Code coverage metrics for the LLVM Compiler Infrastructure
Ashutosh Pandey
Code coverage is the percentage of code that is executed by automated tests. Code coverage tells us which lines of a project have been executed and...
Implement support for C++17 structured bindings in the Clang Static Analyzer
Domján Dániel
Description of the project: Even though a lot of new C++ features are supported by the static analyzer automatically by the virtue of clang AST doing...
Learning loop transformation policy and it's effect on RISC-V
eopXD
This project is based on the proposed project (Learning Loop Transformation Policies) by the mentors Johannes Doerfert, Mircea Trofin. This project...
Learning Live Ranges Priority Policy
Eric Wang
This project is a practical application under the umbrella of the MLGO framework. While the previous work focuses on inlining and eviction policy of...
Remove undef: Move Uninitialized Memory to Poison
John McIver
Current memory semantics of the LLVM-IR use undef when dereferencing an uninitialized memory location. This prevents optimizations within scalar...
Instrumentation of Clang/LLVM for Compile Time
JunduoDong
GSoC Project "Instrumentation of Clang/LLVM for Compile Time" aims to solve a simple but interesting question: Why is the compilation taking so long?...
Moving Instruction Rules to Tablegen
Manuel Drehwald
Enzyme performs automatic differentiation (in the calculus sense) of LLVM programs. The support for an increasing number of LLVM Versions (7-main),...
Extend clang to preserve type sugar when performing member access on template specialization
mizvekov
For an example like: template<class T> struct Foo { using type = T; }; using Bar = int; Foo<Bar>::type baz; In clang, baz’s type will not desugar to...
Improving Clang Diagnostics
Muhammad Usman
Improving the clang diagnostics focuses on the diagnostic section of clang. This proposal is meant to make clang diagnostic more user friendly and...
Make Enzyme plugin callable from The New Pass Manager in LLVM
Shakil
Enzyme plugin project aims to automatically find derivatives of LLVM IR which is pretty helpful for ML related works.Enzyme code base still uses the...
Write JITLink support for a new format/architecture (ELF/AARCH64)
Sunho Kim
JITLink is LLVM’s new JIT linker API -- the low-level API that transforms compiler output (relocatable object files) into ready-to-execute bytes in...
Vector Reverse-Mode Automatic Differentiation
tianyuq2
Enzyme performs automatic differentiation (in the calculus sense) of LLVM programs. This enables users to use Enzyme to perform various algorithms...