mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
17f2d36a06
This currently blocks --print-before/after with a legacy PM pass, for example when we use the new PM for the optimization pipeline but the legacy PM for the codegen pipeline. Also in the future when the codegen pipeline works with the new PM there will be multiple places to specify passes, so even when everything is using the new PM, there will still be multiple places that can accept different pass names. Reviewed By: hoy, ychen Differential Revision: https://reviews.llvm.org/D94283
41 lines
1.3 KiB
C++
41 lines
1.3 KiB
C++
//===- PassInstrumentation.cpp - Pass Instrumentation interface -*- C++ -*-===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
/// \file
|
|
///
|
|
/// This file provides the implementation of PassInstrumentation class.
|
|
///
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "llvm/IR/PassInstrumentation.h"
|
|
#include "llvm/ADT/STLExtras.h"
|
|
#include "llvm/IR/PassManager.h"
|
|
|
|
namespace llvm {
|
|
|
|
void PassInstrumentationCallbacks::addClassToPassName(StringRef ClassName,
|
|
StringRef PassName) {
|
|
ClassToPassName[ClassName] = PassName.str();
|
|
}
|
|
|
|
StringRef
|
|
PassInstrumentationCallbacks::getPassNameForClassName(StringRef ClassName) {
|
|
return ClassToPassName[ClassName];
|
|
}
|
|
|
|
AnalysisKey PassInstrumentationAnalysis::Key;
|
|
|
|
bool isSpecialPass(StringRef PassID, const std::vector<StringRef> &Specials) {
|
|
size_t Pos = PassID.find('<');
|
|
StringRef Prefix = PassID;
|
|
if (Pos != StringRef::npos)
|
|
Prefix = PassID.substr(0, Pos);
|
|
return any_of(Specials, [Prefix](StringRef S) { return Prefix.endswith(S); });
|
|
}
|
|
|
|
} // namespace llvm
|