mirror of
https://github.com/RPCSX/llvm.git
synced 2026-01-31 01:05:23 +01:00
is (by default) run much earlier than FuncitonAttrs proper. This allows forcing optnone or other widely impactful attributes. It is also a bit simpler as the force attribute behavior needs no specific iteration order. I've added the pass into the default module pass pipeline and LTO pass pipeline which mirrors where function attrs itself was being run. Differential Revision: http://reviews.llvm.org/D15668 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@256465 91177308-0d34-0410-b5e6-96231b3b80d8
36 lines
1.1 KiB
C++
36 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.
|
|
class ForceFunctionAttrsPass {
|
|
public:
|
|
static StringRef name() { return "ForceFunctionAttrsPass"; }
|
|
PreservedAnalyses run(Module &M);
|
|
};
|
|
|
|
/// Create a legacy pass manager instance of a pass to force function attrs.
|
|
Pass *createForceFunctionAttrsLegacyPass();
|
|
|
|
}
|
|
|
|
#endif // LLVM_TRANSFORMS_IPO_FORCEFUNCTIONATTRS_H
|