All Projects → sfu-arch → llvm-epp

sfu-arch / llvm-epp

Licence: MIT license
Efficient Path Profiling using LLVM

Programming Languages

C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language
c
50402 projects - #5 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to llvm-epp

Llvm Heat Printer
LLVM Profiling Visualization
Stars: ✭ 68 (+325%)
Mutual labels:  llvm, profiling
imgui-flame-graph
A Dear ImGui Widget for displaying Flame Graphs.
Stars: ✭ 93 (+481.25%)
Mutual labels:  profiling
llvm-semantics
Formal semantics of LLVM IR in K
Stars: ✭ 42 (+162.5%)
Mutual labels:  llvm
app profiler
Collect performance profiles for your Rails application.
Stars: ✭ 133 (+731.25%)
Mutual labels:  profiling
imp
Compiler for IMP programming language implemented in Haskell
Stars: ✭ 16 (+0%)
Mutual labels:  llvm
Jazz
Jazz - modern and fast programming language.
Stars: ✭ 86 (+437.5%)
Mutual labels:  llvm
array-keyed-map
JS datastructure, like Map, but the keys are arrays
Stars: ✭ 29 (+81.25%)
Mutual labels:  path
path-absolutize
A library for extending `Path` and `PathBuf` in order to get an absolute path and remove the containing dots.
Stars: ✭ 37 (+131.25%)
Mutual labels:  path
joern
Open-source code analysis platform for C/C++/Java/Binary/Javascript/Python/Kotlin based on code property graphs
Stars: ✭ 968 (+5950%)
Mutual labels:  llvm
manyclangs
Repository hosting unofficial binary pack files for many commits of LLVM
Stars: ✭ 125 (+681.25%)
Mutual labels:  llvm
gl-bench
⏱ WebGL performance monitor with CPU/GPU load.
Stars: ✭ 146 (+812.5%)
Mutual labels:  profiling
verificarlo
A tool for debugging and assessing floating point precision and reproducibility.
Stars: ✭ 51 (+218.75%)
Mutual labels:  llvm
Mimir
📱 A simple & efficient iOS logging framework for high usage apps
Stars: ✭ 13 (-18.75%)
Mutual labels:  efficient
Batch-First
A JIT compiled chess engine which traverses the search tree in batches in a best-first manner, allowing for neural network batching, asynchronous GPU use, and vectorized CPU computations.
Stars: ✭ 27 (+68.75%)
Mutual labels:  llvm
doc
Design documents related to the decompilation pipeline.
Stars: ✭ 23 (+43.75%)
Mutual labels:  llvm
BatchPayments
A gas conscious batch payment implementation
Stars: ✭ 27 (+68.75%)
Mutual labels:  efficient
LOWLLVM
参照着OLLVM写的一个混淆库,只要机器上有装LLVM,就可以直接编译拿来用
Stars: ✭ 46 (+187.5%)
Mutual labels:  llvm
com.pixelwizards.utilities
Some Unity utilities (UV tools, resource checker etc) packaged for Unity's Package Manager
Stars: ✭ 61 (+281.25%)
Mutual labels:  profiling
surveyor
A symbolic debugger for C/C++ (via LLVM), machine code, and JVM programs
Stars: ✭ 14 (-12.5%)
Mutual labels:  llvm
CFI-LB
Adaptive Callsite-sensitive Control Flow Integrity - EuroS&P'19
Stars: ✭ 13 (-18.75%)
Mutual labels:  llvm

llvm-epp

Efficient Path Profiling using LLVM

Requires

  1. LLVM 5.0
  2. gcc-5+

Build

  1. mkdir build && cd build
  2. cmake -DCMAKE_BUILD_TYPE=Release .. && make -j 8
  3. sudo make install

Test

To run the tests, install lit from the python package index.

  1. pip install lit
  2. cd build
  3. lit test

Documentation

To generate documentation, install graphviz and doxygen. Running cmake with these prerequisites will enable the doc target for the build system. Running make doc will generate html documentation of the classes.

Usage

  1. clang -c -g -emit-llvm prog.c
  2. llvm-epp prog.bc -o prog
  3. clang prog.epp.bc -o exe -lepp-rt
  4. ./exe
  5. llvm-epp -p=path-profile-results.txt prog.bc

Known Issues

  1. Instrumentation cannot be placed along computed indirect branch target edges. This blog post describes the issue under the section "How does this extension interact with critical edge splitting?".

License

The MIT License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].