[llvm] r272721 - [PM] Port WholeProgramDevirt to the new pass manager.

Davide Italiano via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 14 14:53:54 PDT 2016


The run() method here was already incapsulated inside another object,
so I avoided too much code churn and not renamed WholeProgramDevirt ->
WholeProgramDevirtLegacy. If you want me to do that, just let me know.

Thanks,

--
Davide

On Tue, Jun 14, 2016 at 2:44 PM, Davide Italiano via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
> Author: davide
> Date: Tue Jun 14 16:44:19 2016
> New Revision: 272721
>
> URL: http://llvm.org/viewvc/llvm-project?rev=272721&view=rev
> Log:
> [PM] Port WholeProgramDevirt to the new pass manager.
>
> Modified:
>     llvm/trunk/include/llvm/Transforms/IPO/WholeProgramDevirt.h
>     llvm/trunk/lib/Passes/PassBuilder.cpp
>     llvm/trunk/lib/Passes/PassRegistry.def
>     llvm/trunk/lib/Transforms/IPO/WholeProgramDevirt.cpp
>     llvm/trunk/test/Transforms/WholeProgramDevirt/constant-arg.ll
>
> Modified: llvm/trunk/include/llvm/Transforms/IPO/WholeProgramDevirt.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Transforms/IPO/WholeProgramDevirt.h?rev=272721&r1=272720&r2=272721&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/Transforms/IPO/WholeProgramDevirt.h (original)
> +++ llvm/trunk/include/llvm/Transforms/IPO/WholeProgramDevirt.h Tue Jun 14 16:44:19 2016
> @@ -15,6 +15,8 @@
>  #ifndef LLVM_TRANSFORMS_IPO_WHOLEPROGRAMDEVIRT_H
>  #define LLVM_TRANSFORMS_IPO_WHOLEPROGRAMDEVIRT_H
>
> +#include "llvm/IR/Module.h"
> +#include "llvm/IR/PassManager.h"
>  #include <cassert>
>  #include <cstdint>
>  #include <utility>
> @@ -210,6 +212,11 @@ void setAfterReturnValues(MutableArrayRe
>                            int64_t &OffsetByte, uint64_t &OffsetBit);
>
>  } // end namespace wholeprogramdevirt
> +
> +struct WholeProgramDevirtPass : public PassInfoMixin<WholeProgramDevirtPass> {
> +  PreservedAnalyses run(Module &M);
> +};
> +
>  } // end namespace llvm
>
>  #endif // LLVM_TRANSFORMS_IPO_WHOLEPROGRAMDEVIRT_H
>
> Modified: llvm/trunk/lib/Passes/PassBuilder.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Passes/PassBuilder.cpp?rev=272721&r1=272720&r2=272721&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Passes/PassBuilder.cpp (original)
> +++ llvm/trunk/lib/Passes/PassBuilder.cpp Tue Jun 14 16:44:19 2016
> @@ -63,6 +63,7 @@
>  #include "llvm/Transforms/IPO/Internalize.h"
>  #include "llvm/Transforms/IPO/SCCP.h"
>  #include "llvm/Transforms/IPO/StripDeadPrototypes.h"
> +#include "llvm/Transforms/IPO/WholeProgramDevirt.h"
>  #include "llvm/Transforms/InstCombine/InstCombine.h"
>  #include "llvm/Transforms/InstrProfiling.h"
>  #include "llvm/Transforms/PGOInstrumentation.h"
>
> Modified: llvm/trunk/lib/Passes/PassRegistry.def
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Passes/PassRegistry.def?rev=272721&r1=272720&r2=272721&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Passes/PassRegistry.def (original)
> +++ llvm/trunk/lib/Passes/PassRegistry.def Tue Jun 14 16:44:19 2016
> @@ -60,6 +60,7 @@ MODULE_PASS("print-lcg", LazyCallGraphPr
>  MODULE_PASS("rpo-functionattrs", ReversePostOrderFunctionAttrsPass())
>  MODULE_PASS("sample-profile", SampleProfileLoaderPass())
>  MODULE_PASS("strip-dead-prototypes", StripDeadPrototypesPass())
> +MODULE_PASS("wholeprogramdevirt", WholeProgramDevirtPass())
>  MODULE_PASS("verify", VerifierPass())
>  #undef MODULE_PASS
>
>
> Modified: llvm/trunk/lib/Transforms/IPO/WholeProgramDevirt.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/WholeProgramDevirt.cpp?rev=272721&r1=272720&r2=272721&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/IPO/WholeProgramDevirt.cpp (original)
> +++ llvm/trunk/lib/Transforms/IPO/WholeProgramDevirt.cpp Tue Jun 14 16:44:19 2016
> @@ -280,6 +280,12 @@ ModulePass *llvm::createWholeProgramDevi
>    return new WholeProgramDevirt;
>  }
>
> +PreservedAnalyses WholeProgramDevirtPass::run(Module &M) {
> +  if (!DevirtModule(M).run())
> +    return PreservedAnalyses::all();
> +  return PreservedAnalyses::none();
> +}
> +
>  void DevirtModule::buildBitSets(
>      std::vector<VTableBits> &Bits,
>      DenseMap<Metadata *, std::set<BitSetInfo>> &BitSets) {
>
> Modified: llvm/trunk/test/Transforms/WholeProgramDevirt/constant-arg.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/WholeProgramDevirt/constant-arg.ll?rev=272721&r1=272720&r2=272721&view=diff
> ==============================================================================
> --- llvm/trunk/test/Transforms/WholeProgramDevirt/constant-arg.ll (original)
> +++ llvm/trunk/test/Transforms/WholeProgramDevirt/constant-arg.ll Tue Jun 14 16:44:19 2016
> @@ -1,4 +1,5 @@
>  ; RUN: opt -S -wholeprogramdevirt %s | FileCheck %s
> +; RUN: opt -S -passes=wholeprogramdevirt %s | FileCheck %s
>
>  target datalayout = "e-p:64:64"
>  target triple = "x86_64-unknown-linux-gnu"
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits

-- 
Davide

"There are no solved problems; there are only problems that are more
or less solved" -- Henri Poincare


More information about the llvm-commits mailing list