Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:43:20

0001 //===-- SlotMapping.h - Slot number mapping for unnamed values --*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 //
0009 // This file contains the declaration of the SlotMapping struct.
0010 //
0011 //===----------------------------------------------------------------------===//
0012 
0013 #ifndef LLVM_ASMPARSER_SLOTMAPPING_H
0014 #define LLVM_ASMPARSER_SLOTMAPPING_H
0015 
0016 #include "llvm/ADT/StringMap.h"
0017 #include "llvm/AsmParser/NumberedValues.h"
0018 #include "llvm/IR/TrackingMDRef.h"
0019 #include <map>
0020 #include <vector>
0021 
0022 namespace llvm {
0023 
0024 class GlobalValue;
0025 class Type;
0026 
0027 /// This struct contains the mappings from the slot numbers to unnamed metadata
0028 /// nodes, global values and types. It also contains the mapping for the named
0029 /// types.
0030 /// It can be used to save the parsing state of an LLVM IR module so that the
0031 /// textual references to the values in the module can be parsed outside of the
0032 /// module's source.
0033 struct SlotMapping {
0034   NumberedValues<GlobalValue *> GlobalValues;
0035   std::map<unsigned, TrackingMDNodeRef> MetadataNodes;
0036   StringMap<Type *> NamedTypes;
0037   std::map<unsigned, Type *> Types;
0038 };
0039 
0040 } // end namespace llvm
0041 
0042 #endif