mirror of
https://github.com/RPCS3/llvm.git
synced 2026-01-31 01:25:19 +01:00
pass manager passes' `run` methods. This removes a bunch of SFINAE goop from the pass manager and just requires pass authors to accept `AnalysisManager<IRUnitT> &` as a dead argument. This is a small price to pay for the simplicity of the system as a whole, despite the noise that changing it causes at this stage. This will also helpfull allow us to make the signature of the run methods much more flexible for different kinds af passes to support things like intelligently updating the pass's progression over IR units. While this touches many, many, files, the changes are really boring. Mostly made with the help of my trusty perl one liners. Thanks to Sean and Hal for bouncing ideas for this with me in IRC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272978 91177308-0d34-0410-b5e6-96231b3b80d8
34 lines
1.1 KiB
C++
34 lines
1.1 KiB
C++
//===-- ForceFunctionAttrs.h - Force function attrs for debugging ---------===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
/// \file
|
|
/// Super simple passes to force specific function attrs from the commandline
|
|
/// into the IR for debugging purposes.
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_TRANSFORMS_IPO_FORCEFUNCTIONATTRS_H
|
|
#define LLVM_TRANSFORMS_IPO_FORCEFUNCTIONATTRS_H
|
|
|
|
#include "llvm/IR/Module.h"
|
|
#include "llvm/IR/PassManager.h"
|
|
|
|
namespace llvm {
|
|
|
|
/// Pass which forces specific function attributes into the IR, primarily as
|
|
/// a debugging tool.
|
|
struct ForceFunctionAttrsPass : PassInfoMixin<ForceFunctionAttrsPass> {
|
|
PreservedAnalyses run(Module &M, ModuleAnalysisManager &);
|
|
};
|
|
|
|
/// Create a legacy pass manager instance of a pass to force function attrs.
|
|
Pass *createForceFunctionAttrsLegacyPass();
|
|
|
|
}
|
|
|
|
#endif // LLVM_TRANSFORMS_IPO_FORCEFUNCTIONATTRS_H
|