michalpaszkowski / LLVM-Canon

LLVM-Canon aims to transform LLVM modules into a canonical form by reordering and renaming instructions while preserving the same semantics.
Apache License 2.0
12 stars 3 forks source link

LLVM17 #2

Open hughleat opened 5 months ago

hughleat commented 5 months ago

Hi,

We've been planning to use LLVM-Canon in one of our papers. It's great!

We've upgraded from LLVM 10 to LLVM 17. Are there any plans to have LLVM-Canon work on later versions of LLVM?

Cheers,

Hugh.

michalpaszkowski commented 5 months ago

Hi @hughleat! Thank you! Justin Fargnoli and Aidan Goldfarb have put significant amount of work to bring this tool into the upstream LLVM (please see PR 68176 in LLVM repository, it is still under review). I have pushed the most recent version of this tool into the llvm18 branch in this repository. The pass resides in llvm/lib/Transforms/Utils/IRNormalizer.cpp. Please feel free to use it in the paper! In case you find the pass useful, please also attribute @justinfargnoli and @AidanGoldfarb as co-authors.