optimizationstatic code analysiscompilerbackendfrontendcompilerscompiler apicode analysisprogramming languages and development toolsdebuggersdevelopment toolslibraries
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...
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...
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...
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),...
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...
Write JITLink support for new format/architecture
Sunho Kim
JITLink is LLVM’s new JIT linker designed to support a variety of new features, which includes full static initializer, thread local storage, and...
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...
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...
Implement support for C++17 structured bindings in the Clang Static Analyzer
Domján Dániel
Even though a lot of new C++ features are supported by the static analyzer automatically by the virtue of clang AST doing all the work under the...
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...
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...
Instrumentation of Clang/LLVM for Compile Time
Junduo Dong
GSoC Project "Instrumentation of Clang/LLVM for Compile Time" aims to solve a simple but interesting question: Why is the compilation taking so long?...
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...