[all-commits] [llvm/llvm-project] 195087: [llvm-reduce] Try harder to not create invalid ali...

aeubanks via All-commits all-commits at lists.llvm.org
Fri Aug 12 10:39:46 PDT 2022

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 195087d8152c3750a1aace67406140bd9e21244e
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2022-08-12 (Fri, 12 Aug 2022)

  Changed paths:
    R llvm/test/tools/llvm-reduce/remove-bbs-comdat.ll
    M llvm/test/tools/llvm-reduce/remove-bbs-entry.ll
    M llvm/test/tools/llvm-reduce/remove-function-bodies-used-in-globals.ll
    M llvm/test/tools/llvm-reduce/temporary-files-as-bitcode-split.ll
    M llvm/test/tools/llvm-reduce/temporary-files-as-bitcode.ll
    M llvm/tools/llvm-reduce/deltas/Delta.cpp
    M llvm/tools/llvm-reduce/deltas/ReduceBasicBlocks.cpp
    M llvm/tools/llvm-reduce/deltas/ReduceFunctionBodies.cpp
    M llvm/tools/llvm-reduce/deltas/ReduceFunctions.cpp
    M llvm/tools/llvm-reduce/deltas/Utils.cpp
    M llvm/tools/llvm-reduce/deltas/Utils.h

  Log Message:
  [llvm-reduce] Try harder to not create invalid aliases

This was done by adding --abort-on-invalid-reduction to remove-function-bodies-used-in-globals.ll and fixing the fallout.

Aliases must have a GlobalValue or ConstantExpr aliasee and the aliasee must be a definition if it's a GlobalValue.
Don't RAUW functions with null if there's an alias pointing to it, and similarly don't delete the body of a function.
Don't delete the entire body of a function when reducing blocks, preserve at least one block.

Also make debugging these sorts of things easier by dumping the module when --abort-on-invalid-reduction triggers.

Reviewed By: regehr

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

More information about the All-commits mailing list