diff options
| author | Davide Italiano <davide@freebsd.org> | 2016-07-11 18:10:06 +0000 | 
|---|---|---|
| committer | Davide Italiano <davide@freebsd.org> | 2016-07-11 18:10:06 +0000 | 
| commit | e8ae0b5eb48e15ffb7524ce68b76971e313d53ad (patch) | |
| tree | 609c09ba8c71c5a6268bba579cec32b81131af75 /llvm/lib/Transforms | |
| parent | c3a162c451af7e6df3344728563bddd4e142c6a5 (diff) | |
| download | bcm5719-llvm-e8ae0b5eb48e15ffb7524ce68b76971e313d53ad.tar.gz bcm5719-llvm-e8ae0b5eb48e15ffb7524ce68b76971e313d53ad.zip | |
[PM/IPO] Port LowerTypeTests to the new PassManager.
There's a little bit of churn in this patch because the initialization
mechanism is now shared between the old and the new PM. Other than
that, it's just a pretty mechanical translation.
llvm-svn: 275082
Diffstat (limited to 'llvm/lib/Transforms')
| -rw-r--r-- | llvm/lib/Transforms/IPO/LowerTypeTests.cpp | 45 | 
1 files changed, 28 insertions, 17 deletions
| diff --git a/llvm/lib/Transforms/IPO/LowerTypeTests.cpp b/llvm/lib/Transforms/IPO/LowerTypeTests.cpp index 67c9b971e35..36089f0a880 100644 --- a/llvm/lib/Transforms/IPO/LowerTypeTests.cpp +++ b/llvm/lib/Transforms/IPO/LowerTypeTests.cpp @@ -985,25 +985,36 @@ bool LowerTypeTests::lower() {    return true;  } +// Initialization helper shared by the old and the new PM. +static void init(LowerTypeTests *LTT, Module &M) { +  LTT->M = &M; +  const DataLayout &DL = M.getDataLayout(); +  Triple TargetTriple(M.getTargetTriple()); +  LTT->LinkerSubsectionsViaSymbols = TargetTriple.isMacOSX(); +  LTT->Arch = TargetTriple.getArch(); +  LTT->ObjectFormat = TargetTriple.getObjectFormat(); +  LTT->Int1Ty = Type::getInt1Ty(M.getContext()); +  LTT->Int8Ty = Type::getInt8Ty(M.getContext()); +  LTT->Int32Ty = Type::getInt32Ty(M.getContext()); +  LTT->Int32PtrTy = PointerType::getUnqual(LTT->Int32Ty); +  LTT->Int64Ty = Type::getInt64Ty(M.getContext()); +  LTT->IntPtrTy = DL.getIntPtrType(M.getContext(), 0); +  LTT->TypeTestCallSites.clear(); +} +  bool LowerTypeTests::runOnModule(Module &M) {    if (skipModule(M))      return false; - -  this->M = &M; -  const DataLayout &DL = M.getDataLayout(); - -  Triple TargetTriple(M.getTargetTriple()); -  LinkerSubsectionsViaSymbols = TargetTriple.isMacOSX(); -  Arch = TargetTriple.getArch(); -  ObjectFormat = TargetTriple.getObjectFormat(); - -  Int1Ty = Type::getInt1Ty(M.getContext()); -  Int8Ty = Type::getInt8Ty(M.getContext()); -  Int32Ty = Type::getInt32Ty(M.getContext()); -  Int32PtrTy = PointerType::getUnqual(Int32Ty); -  Int64Ty = Type::getInt64Ty(M.getContext()); -  IntPtrTy = DL.getIntPtrType(M.getContext(), 0); - -  TypeTestCallSites.clear(); +  init(this, M);    return lower();  } + +PreservedAnalyses LowerTypeTestsPass::run(Module &M, +                                          AnalysisManager<Module> &AM) { +  LowerTypeTests Impl; +  init(&Impl, M); +  bool Changed = Impl.lower(); +  if (!Changed) +    return PreservedAnalyses::all(); +  return PreservedAnalyses::none(); +} | 

