[all-commits] [llvm/llvm-project] 4ecc6a: [InstCombine] create a pass options container and ...

Sanjay Patel via All-commits all-commits at lists.llvm.org
Fri Feb 17 07:30:30 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 4ecc6af813e2568c3529ea0fe55eaea891d8ab49
      https://github.com/llvm/llvm-project/commit/4ecc6af813e2568c3529ea0fe55eaea891d8ab49
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2023-02-17 (Fri, 17 Feb 2023)

  Changed paths:
    M llvm/include/llvm/Transforms/InstCombine/InstCombine.h
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/lib/Passes/PassRegistry.def
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    M llvm/test/Other/new-pm-print-pipeline.ll
    M llvm/test/Transforms/InstCombine/gep-combine-loop-invariant.ll
    M llvm/test/Transforms/InstCombine/statepoint-cleanup.ll
    M llvm/test/Transforms/InstCombine/statepoint-iter.ll

  Log Message:
  -----------
  [InstCombine] create a pass options container and add "use-loop-info" argument

This is a cleanup/modernization patch requested in D144045 to make loop
analysis a proper optional parameter to the pass rather than a
semi-arbitrary value inherited via the pass pipeline.

It's a bit more complicated than the recent patch I started copying from
(D143980) because InstCombine already has an option for MaxIterations
(added with D71145).

I debated just deleting that option, but it was used by a pair of existing
tests, so I put it into a struct (code largely copied from SimplifyCFG's
implementation) to make the code more flexible for future options
enhancements.

I didn't alter the pass manager invocations of InstCombine in this patch
because the patch was already getting big, but that will be a small
follow-up as noted with the TODO comment.

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




More information about the All-commits mailing list