[all-commits] [llvm/llvm-project] 7c2db6: llvm-reduce: Support multiple MachineFunctions

Matt Arsenault via All-commits all-commits at lists.llvm.org
Wed Apr 27 15:14:54 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 7c2db66632486c7c460779843d60477a06ded462
      https://github.com/llvm/llvm-project/commit/7c2db66632486c7c460779843d60477a06ded462
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2022-04-27 (Wed, 27 Apr 2022)

  Changed paths:
    M llvm/include/llvm/CodeGen/MachineModuleInfo.h
    M llvm/lib/CodeGen/MachineModuleInfo.cpp
    A llvm/test/tools/llvm-reduce/mir/multiple-functions.mir
    M llvm/tools/llvm-reduce/ReducerWorkItem.cpp
    M llvm/tools/llvm-reduce/ReducerWorkItem.h
    M llvm/tools/llvm-reduce/TestRunner.cpp
    M llvm/tools/llvm-reduce/TestRunner.h
    M llvm/tools/llvm-reduce/deltas/Delta.cpp
    M llvm/tools/llvm-reduce/deltas/Delta.h
    M llvm/tools/llvm-reduce/deltas/ReduceInstructionsMIR.cpp
    M llvm/tools/llvm-reduce/llvm-reduce.cpp

  Log Message:
  -----------
  llvm-reduce: Support multiple MachineFunctions

The current testcase I'm trying to reduce only reproduces with IPRA
enabled and requires handling multiple functions.

The only real difference vs. the IR is the extra indirect to look for
the underlying MachineFunction, so treat the ReduceWorkItem as the
module instead of the function.

The ugliest piece of this is really the ugliness of
MachineModuleInfo. It not only tracks actual module state, but has a
number of transient fields used for isel and/or the asm printer. These
shouldn't do any harm for the use here, though they should be
separated out.




More information about the All-commits mailing list