LLVM 22.0.0git
RuntimeLibcallInfo.h
Go to the documentation of this file.
1//===-- RuntimeLibcallInfo.h - Runtime library information ------*- 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#ifndef LLVM_ANALYSIS_RUNTIMELIBCALLINFO_H
10#define LLVM_ANALYSIS_RUNTIMELIBCALLINFO_H
11
13#include "llvm/Pass.h"
14
15namespace llvm {
16
18 : public AnalysisInfoMixin<RuntimeLibraryAnalysis> {
19public:
21
24 : LibcallsInfo(std::move(BaselineInfoImpl)) {}
25 explicit RuntimeLibraryAnalysis(const Triple &T) : LibcallsInfo(T) {}
26
29
30private:
33
34 RTLIB::RuntimeLibcallsInfo LibcallsInfo;
35};
36
39 std::optional<RTLIB::RuntimeLibcallsInfo> RTLCI;
40
41public:
42 static char ID;
46
48 ModuleAnalysisManager DummyMAM;
49 RTLCI = RTLA.run(M, DummyMAM);
50 return *RTLCI;
51 }
52
53 void getAnalysisUsage(AnalysisUsage &AU) const override;
54};
55
57
58} // namespace llvm
59
60#endif
#define LLVM_ABI
Definition Compiler.h:213
#define T
Represent the analysis usage information of a pass.
ImmutablePass(char &pid)
Definition Pass.h:287
A Module instance is used to store all the information related to an LLVM module.
Definition Module.h:67
RuntimeLibraryAnalysis(const Triple &T)
RTLIB::RuntimeLibcallsInfo Result
RuntimeLibraryAnalysis(RTLIB::RuntimeLibcallsInfo &&BaselineInfoImpl)
RuntimeLibraryInfoWrapper(const Triple &T)
RuntimeLibraryInfoWrapper(const RTLIB::RuntimeLibcallsInfo &RTLCI)
const RTLIB::RuntimeLibcallsInfo & getRTLCI(const Module &M)
Triple - Helper class for working with autoconf configuration names.
Definition Triple.h:47
This is an optimization pass for GlobalISel generic memory operations.
LLVM_ABI ModulePass * createRuntimeLibraryInfoWrapperPass()
LLVM_ATTRIBUTE_VISIBILITY_DEFAULT AnalysisKey InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
Definition STLExtras.h:1867
AnalysisManager< Module > ModuleAnalysisManager
Convenience typedef for the Module analysis manager.
Definition MIRParser.h:39
Implement std::hash so that hash_code can be used in STL containers.
Definition BitVector.h:867
A CRTP mix-in that provides informational APIs needed for analysis passes.
Definition PassManager.h:93
A special type used by analysis passes to provide an address that identifies that particular analysis...
Definition Analysis.h:29
A simple container for information about the supported runtime calls.