LLVM Instrumentation Overview
Understanding the difference between profile-instr-generate and profile-generate options for LLVM instrumentation is essential for optimizing code performance and analyzing coverage. These options provide different levels of profiling data generation, affecting the accuracy of performance analysis a
0 views • 20 slides
Leveraging Artifact Dependency Graphs for Software Vulnerability Detection
Explore how LLVM-GitBOM utilizes artifact dependency graphs to detect vulnerabilities in software dependencies. The presentation covers the overview of GitBOM, CVE detection, supply chain vulnerabilities, and the importance of precise build tools in vulnerability scanning. Learn about utilizing gito
0 views • 34 slides
Understanding the Difference Between LLVM Profile-Instr-Generate and Profile-Generate Options
The profile-instr-generate and profile-generate options in LLVM instrumentation serve distinct purposes. Profile-instr-generate generates instrumentation based on profiling data during compilation, aiding in performance optimization. In contrast, profile-generate is used to generate a profile based
1 views • 20 slides
LLVM Memory Review and Function Example
In this exercise, an LLVM IR function is created to extract the element at index 2 from a pointer to an array of integers. The concept of named memory in LLVM is reviewed, distinguishing between local, global, and constant memory declarations. Additionally, memory access operations like store, load,
2 views • 18 slides
LLVM Line Coverage Profiling Implementation Overview
Line coverage profiling in LLVM is implemented using built-in instrumentation facilities. This approach involves inserting PGO probes, interpreting them as coverage measurements, and generating coverage reports to assess the coverage of a test suite. The process allows for generating profile informa
2 views • 19 slides
Falcon: An Optimizing Java JIT Compiler Overview
Explore Falcon, an LLVM-based just-in-time compiler for Java bytecode developed by Azul Systems. Learn why using LLVM to build a JIT compiler is beneficial, address common objections, and dive into the technical and process lessons learned through its development timeline.
0 views • 66 slides
Understanding Compiler Optimizations in LLVM: Challenges and Solutions
Compiler optimizations in LLVM, such as loop vectorization, are crucial for enhancing program performance. However, understanding and addressing optimization challenges, like backward dependencies, can be complex. This article explores how LLVM values map to corresponding source-level expressions an
0 views • 41 slides
Understanding LLVM's Undef and Poison Values
This talk dives into LLVM's concept of undef and poison values, addressing the uncertainties and real-world problems associated with their semantics. The discussion covers the background, current status, and future directions of these values, shedding light on their importance in program behavior an
0 views • 34 slides
Automated Software Testing with LLVM Pass and Code Instrumentation
This content delves into LLVM Passes, the LLVM Pass Framework, control flow graphs in LLVM IR, and an example Pass implementation called IntWrite for monitoring integer variable updates. It explains the process, concepts, and tools involved in automated software testing using LLVM Passes and code in
0 views • 18 slides
Understanding LLILC: A Code Generator for CoreCLR with a Focus on GC
LLILC, utilizing LLVM as a code generator for CoreCLR, emphasizes Garbage Collection (GC) and offers insights on JIT compilation and pluggable Jit architecture. This open-source project provides a cross-platform capable version of the CLR and supports Portable API surface for .Net frameworks, enabli
0 views • 24 slides