[all-commits] [llvm/llvm-project] f04421: [ConstraintElim] Add reproducer remarks.

Florian Hahn via All-commits all-commits at lists.llvm.org
Tue Feb 14 07:16:27 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f04421739232b19d70fd00fbb66b136a3f1b22ed
      https://github.com/llvm/llvm-project/commit/f04421739232b19d70fd00fbb66b136a3f1b22ed
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2023-02-14 (Tue, 14 Feb 2023)

  Changed paths:
    M llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
    M llvm/test/Transforms/ConstraintElimination/analysis-invalidation.ll
    A llvm/test/Transforms/ConstraintElimination/reproducer-remarks-debug.ll
    A llvm/test/Transforms/ConstraintElimination/reproducer-remarks.ll
    A llvm/tools/opt-viewer/extract-reproducers.py

  Log Message:
  -----------
  [ConstraintElim] Add reproducer remarks.

This patch adds an optimization remark for each performed optimization
containing a module that can be used to reproduce the transformation.

The reproducer function contains a series of @llvm.assume calls, one for
each condition currently in scope. For each condition, the operand
instruction are cloned until we reach operands that have an entry in the
constraint system. Those will then be added as function arguments.

The reproducer functions are minimal, that is, they only contain the
conditions required for a given simplification. The resulting IR is very
compact and can be used to verify each transformation individually.

It also provides a python script to extract the IR from the remarks and
create LLVM IR files from it.

Reviewed By: paquette

Differential Revision: https://reviews.llvm.org/D143323




More information about the All-commits mailing list