llvm-reduce: Reduce ifuncs
authorMatt Arsenault <Matthew.Arsenault@amd.com>
Tue, 22 Nov 2022 21:55:44 +0000 (16:55 -0500)
committerMatt Arsenault <arsenm2@gmail.com>
Wed, 18 Jan 2023 03:33:57 +0000 (22:33 -0500)
commitbc3e492323f34eb92f49897d22468aef2d831d5a
tree32b4b06a34987684daa939eb7fab8f064a7410fb
parente7cd42f8e4da1beed52f401dcf87d22d36a2c81c
llvm-reduce: Reduce ifuncs

Reduce by calling the resolver function at the use site, and inserting
an indirect call. Try to delete if there are no uses left over.

We should also probably try to do something about constantexpr uses;
perhaps treat them like aliases.
llvm/include/llvm/Transforms/Utils/ModuleUtils.h
llvm/test/tools/llvm-reduce/ifunc-alias.ll [new file with mode: 0644]
llvm/test/tools/llvm-reduce/ifunc-nonsense-resolvers.ll [new file with mode: 0644]
llvm/test/tools/llvm-reduce/remove-ifunc-constantexpr.ll [new file with mode: 0644]
llvm/test/tools/llvm-reduce/remove-ifunc-program-addrspace.ll [new file with mode: 0644]
llvm/test/tools/llvm-reduce/remove-ifunc.ll [new file with mode: 0644]
llvm/tools/llvm-reduce/DeltaManager.cpp
llvm/tools/llvm-reduce/deltas/ReduceAliases.cpp
llvm/tools/llvm-reduce/deltas/ReduceAliases.h