1//===- llvm/CodeGen/MachineModuleInfoImpls.cpp ----------------------------===//
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
7//===----------------------------------------------------------------------===//
9// This file implements object-file format specific implementations of
10// MachineModuleInfoImpl.
12//===----------------------------------------------------------------------===//
23//===----------------------------------------------------------------------===//
24// MachineModuleInfoMachO
25//===----------------------------------------------------------------------===//
27// Out of line virtual method.
28void MachineModuleInfoMachO::anchor() {}
29void MachineModuleInfoELF::anchor() {}
30void MachineModuleInfoCOFF::anchor() {}
31void MachineModuleInfoWasm::anchor() {}
33 using PairTy = std::pair<MCSymbol *, MachineModuleInfoImpl::StubValueTy>;
35 return LHS->first->getName().compare(
RHS->first->getName());
51 return LHS->first->getName().compare(
RHS->first->getName());
68 M->getModuleFlag(
"ptrauth-sign-personality"));
69 HasSignedPersonality = Flag && Flag->getZExtValue() == 1;
This file contains the declarations for the subclasses of Constant, which represent the different fla...
This file defines the DenseMap class.
Module.h This file contains the declarations for the Module class.
static int SortSymbolPair(const PairTy *LHS, const PairTy *RHS)
std::pair< MCSymbol *, const MCExpr * > ExprStubPairTy
std::pair< MCSymbol *, MachineModuleInfoImpl::StubValueTy > PairTy
static int SortAuthStubPair(const ExprStubPairTy *LHS, const ExprStubPairTy *RHS)
MachineModuleInfoELF(const MachineModuleInfo &)
std::vector< std::pair< MCSymbol *, StubValueTy > > SymbolListTy
static SymbolListTy getSortedStubs(DenseMap< MCSymbol *, StubValueTy > &)
Return the entries from a DenseMap in a deterministic sorted orer.
std::vector< std::pair< MCSymbol *, const MCExpr * > > ExprStubListTy
A variant of SymbolListTy where the stub is a generalized MCExpr.
static ExprStubListTy getSortedExprStubs(DenseMap< MCSymbol *, const MCExpr * > &)
Return the entries from a DenseMap in a deterministic sorted orer.
This class contains meta information specific to a module.
const Module * getModule() const
A Module instance is used to store all the information related to an LLVM module.
std::enable_if_t< detail::IsValidPointer< X, Y >::value, X * > extract_or_null(Y &&MD)
Extract a Value from Metadata, allowing null.
This is an optimization pass for GlobalISel generic memory operations.
void array_pod_sort(IteratorTy Start, IteratorTy End)
array_pod_sort - This sorts an array with the specified start and end extent.