LLVM 24.0.0git
LibcallLoweringInfo.h
Go to the documentation of this file.
1//===- LibcallLoweringInfo.h ------------------------------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// Legacy-pass-manager wrapper around the Analysis-layer libcall lowering info,
10// which is aware of TargetSubtargetInfo.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef LLVM_CODEGEN_LIBCALLLOWERINGINFO_H
15#define LLVM_CODEGEN_LIBCALLLOWERINGINFO_H
16
18#include "llvm/Pass.h"
19
20namespace llvm {
23
24/// Resolve the LibcallLoweringInfo for \p Subtarget from the module-level \p
25/// ModuleInfo, applying the subtarget's libcall overrides.
28 const TargetSubtargetInfo &Subtarget);
29
32 RuntimeLibraryInfoWrapper *RuntimeLibcallsWrapper = nullptr;
33
34public:
35 static char ID;
37
39 getLibcallLowering(const Module &M, const TargetSubtargetInfo &Subtarget);
40
42
43 void initializePass() override;
44 void getAnalysisUsage(AnalysisUsage &AU) const override;
45 void releaseMemory() override;
46};
47
48} // end namespace llvm
49
50#endif // LLVM_CODEGEN_LIBCALLLOWERINGINFO_H
#define LLVM_ABI
Definition Compiler.h:215
Represent the analysis usage information of a pass.
ImmutablePass(char &pid)
Definition Pass.h:287
const ModuleLibcallLoweringInfo & getResult(const Module &M)
const LibcallLoweringInfo & getLibcallLowering(const Module &M, const TargetSubtargetInfo &Subtarget)
void initializePass() override
initializePass - This method may be overriden by immutable passes to allow them to perform various in...
void releaseMemory() override
releaseMemory() - This member can be implemented by a pass if it wants to be able to release its memo...
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...
Tracks which library functions to use for a particular subtarget or function.
Records a mapping from an opaque lowering context to its LibcallLoweringInfo.
A Module instance is used to store all the information related to an LLVM module.
Definition Module.h:67
TargetSubtargetInfo - Generic base class for all target subtargets.
This is an optimization pass for GlobalISel generic memory operations.
LLVM_ABI const LibcallLoweringInfo & getLibcallLowering(const ModuleLibcallLoweringInfo &ModuleInfo, const TargetSubtargetInfo &Subtarget)
Resolve the LibcallLoweringInfo for Subtarget from the module-level ModuleInfo, applying the subtarge...