vgene / llvm-differ

Compare different ways to diff LLVM IR

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Goal

  1. Diff two IR files and highlight the nontrivial differences

    • Ignore temporary variable naming differences
    • Ignore reordering of basic blocks
    • Other differences not related to the semantics
  2. Find the cause (transforms) of any performance change

  3. Use the differences to predict performance change

  4. Use performane change to determine the necessity of a code change (critic and remedy)

Prior Work

Existing ways to diff LLVM IR

  • llvm-diff
  • llvm-canon (under development)
  • Update test checks script

Existing ways to find the cause

High Level Ideas

  • Try all the existing ways using the motivating example from Rust project and see what is missing
  • Use PDG/CFG to facilitate the diff
  • Use CPF outside of automatic parallelization

About

Compare different ways to diff LLVM IR