diff options
author | orivej <orivej@yandex-team.ru> | 2022-02-10 16:44:49 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:44:49 +0300 |
commit | 718c552901d703c502ccbefdfc3c9028d608b947 (patch) | |
tree | 46534a98bbefcd7b1f3faa5b52c138ab27db75b7 /contrib/libs/llvm12/include/llvm/AsmParser | |
parent | e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0 (diff) | |
download | ydb-718c552901d703c502ccbefdfc3c9028d608b947.tar.gz |
Restoring authorship annotation for <orivej@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/llvm12/include/llvm/AsmParser')
-rw-r--r-- | contrib/libs/llvm12/include/llvm/AsmParser/Parser.h | 400 | ||||
-rw-r--r-- | contrib/libs/llvm12/include/llvm/AsmParser/SlotMapping.h | 104 |
2 files changed, 252 insertions, 252 deletions
diff --git a/contrib/libs/llvm12/include/llvm/AsmParser/Parser.h b/contrib/libs/llvm12/include/llvm/AsmParser/Parser.h index e0462c65a5..ca2ff18844 100644 --- a/contrib/libs/llvm12/include/llvm/AsmParser/Parser.h +++ b/contrib/libs/llvm12/include/llvm/AsmParser/Parser.h @@ -1,200 +1,200 @@ -#pragma once - -#ifdef __GNUC__ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-parameter" -#endif - -//===-- Parser.h - Parser for LLVM IR text assembly files -------*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// -// -// These classes are implemented by the lib/AsmParser library. -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_ASMPARSER_PARSER_H -#define LLVM_ASMPARSER_PARSER_H - -#include "llvm/ADT/STLExtras.h" -#include "llvm/ADT/StringRef.h" -#include <memory> - -namespace llvm { - -class Constant; -class LLVMContext; -class MemoryBufferRef; -class Module; -class ModuleSummaryIndex; -struct SlotMapping; -class SMDiagnostic; -class Type; - -typedef llvm::function_ref<Optional<std::string>(StringRef)> - DataLayoutCallbackTy; - -/// This function is a main interface to the LLVM Assembly Parser. It parses -/// an ASCII file that (presumably) contains LLVM Assembly code. It returns a -/// Module (intermediate representation) with the corresponding features. Note -/// that this does not verify that the generated Module is valid, so you should -/// run the verifier after parsing the file to check that it is okay. -/// Parse LLVM Assembly from a file -/// \param Filename The name of the file to parse -/// \param Err Error result info. -/// \param Context Context in which to allocate globals info. -/// \param Slots The optional slot mapping that will be initialized during -/// parsing. -std::unique_ptr<Module> parseAssemblyFile(StringRef Filename, SMDiagnostic &Err, - LLVMContext &Context, - SlotMapping *Slots = nullptr); - -/// The function is a secondary interface to the LLVM Assembly Parser. It parses -/// an ASCII string that (presumably) contains LLVM Assembly code. It returns a -/// Module (intermediate representation) with the corresponding features. Note -/// that this does not verify that the generated Module is valid, so you should -/// run the verifier after parsing the file to check that it is okay. -/// Parse LLVM Assembly from a string -/// \param AsmString The string containing assembly -/// \param Err Error result info. -/// \param Context Context in which to allocate globals info. -/// \param Slots The optional slot mapping that will be initialized during -/// parsing. -std::unique_ptr<Module> parseAssemblyString(StringRef AsmString, - SMDiagnostic &Err, - LLVMContext &Context, - SlotMapping *Slots = nullptr); - -/// Holds the Module and ModuleSummaryIndex returned by the interfaces -/// that parse both. -struct ParsedModuleAndIndex { - std::unique_ptr<Module> Mod; - std::unique_ptr<ModuleSummaryIndex> Index; -}; - -/// This function is a main interface to the LLVM Assembly Parser. It parses -/// an ASCII file that (presumably) contains LLVM Assembly code, including -/// a module summary. It returns a Module (intermediate representation) and -/// a ModuleSummaryIndex with the corresponding features. Note that this does -/// not verify that the generated Module or Index are valid, so you should -/// run the verifier after parsing the file to check that they are okay. -/// Parse LLVM Assembly from a file -/// \param Filename The name of the file to parse -/// \param Err Error result info. -/// \param Context Context in which to allocate globals info. -/// \param Slots The optional slot mapping that will be initialized during -/// parsing. -/// \param DataLayoutCallback Override datalayout in the llvm assembly. -ParsedModuleAndIndex parseAssemblyFileWithIndex( - StringRef Filename, SMDiagnostic &Err, LLVMContext &Context, - SlotMapping *Slots = nullptr, - DataLayoutCallbackTy DataLayoutCallback = [](StringRef) { return None; }); - -/// Only for use in llvm-as for testing; this does not produce a valid module. -ParsedModuleAndIndex parseAssemblyFileWithIndexNoUpgradeDebugInfo( - StringRef Filename, SMDiagnostic &Err, LLVMContext &Context, - SlotMapping *Slots, DataLayoutCallbackTy DataLayoutCallback); - -/// This function is a main interface to the LLVM Assembly Parser. It parses -/// an ASCII file that (presumably) contains LLVM Assembly code for a module -/// summary. It returns a a ModuleSummaryIndex with the corresponding features. -/// Note that this does not verify that the generated Index is valid, so you -/// should run the verifier after parsing the file to check that it is okay. -/// Parse LLVM Assembly Index from a file -/// \param Filename The name of the file to parse -/// \param Err Error result info. -std::unique_ptr<ModuleSummaryIndex> -parseSummaryIndexAssemblyFile(StringRef Filename, SMDiagnostic &Err); - -/// parseAssemblyFile and parseAssemblyString are wrappers around this function. -/// Parse LLVM Assembly from a MemoryBuffer. -/// \param F The MemoryBuffer containing assembly -/// \param Err Error result info. -/// \param Slots The optional slot mapping that will be initialized during -/// parsing. -/// \param DataLayoutCallback Override datalayout in the llvm assembly. -std::unique_ptr<Module> parseAssembly( - MemoryBufferRef F, SMDiagnostic &Err, LLVMContext &Context, - SlotMapping *Slots = nullptr, - DataLayoutCallbackTy DataLayoutCallback = [](StringRef) { return None; }); - -/// Parse LLVM Assembly including the summary index from a MemoryBuffer. -/// -/// \param F The MemoryBuffer containing assembly with summary -/// \param Err Error result info. -/// \param Slots The optional slot mapping that will be initialized during -/// parsing. -/// -/// parseAssemblyFileWithIndex is a wrapper around this function. -ParsedModuleAndIndex parseAssemblyWithIndex(MemoryBufferRef F, - SMDiagnostic &Err, - LLVMContext &Context, - SlotMapping *Slots = nullptr); - -/// Parse LLVM Assembly for summary index from a MemoryBuffer. -/// -/// \param F The MemoryBuffer containing assembly with summary -/// \param Err Error result info. -/// -/// parseSummaryIndexAssemblyFile is a wrapper around this function. -std::unique_ptr<ModuleSummaryIndex> -parseSummaryIndexAssembly(MemoryBufferRef F, SMDiagnostic &Err); - -/// This function is the low-level interface to the LLVM Assembly Parser. -/// This is kept as an independent function instead of being inlined into -/// parseAssembly for the convenience of interactive users that want to add -/// recently parsed bits to an existing module. -/// -/// \param F The MemoryBuffer containing assembly -/// \param M The module to add data to. -/// \param Index The index to add data to. -/// \param Err Error result info. -/// \param Slots The optional slot mapping that will be initialized during -/// parsing. -/// \return true on error. -/// \param DataLayoutCallback Override datalayout in the llvm assembly. -bool parseAssemblyInto( - MemoryBufferRef F, Module *M, ModuleSummaryIndex *Index, SMDiagnostic &Err, - SlotMapping *Slots = nullptr, - DataLayoutCallbackTy DataLayoutCallback = [](StringRef) { return None; }); - -/// Parse a type and a constant value in the given string. -/// -/// The constant value can be any LLVM constant, including a constant -/// expression. -/// -/// \param Slots The optional slot mapping that will restore the parsing state -/// of the module. -/// \return null on error. -Constant *parseConstantValue(StringRef Asm, SMDiagnostic &Err, const Module &M, - const SlotMapping *Slots = nullptr); - -/// Parse a type in the given string. -/// -/// \param Slots The optional slot mapping that will restore the parsing state -/// of the module. -/// \return null on error. -Type *parseType(StringRef Asm, SMDiagnostic &Err, const Module &M, - const SlotMapping *Slots = nullptr); - -/// Parse a string \p Asm that starts with a type. -/// \p Read[out] gives the number of characters that have been read to parse -/// the type in \p Asm. -/// -/// \param Slots The optional slot mapping that will restore the parsing state -/// of the module. -/// \return null on error. -Type *parseTypeAtBeginning(StringRef Asm, unsigned &Read, SMDiagnostic &Err, - const Module &M, const SlotMapping *Slots = nullptr); - -} // End llvm namespace - -#endif - -#ifdef __GNUC__ -#pragma GCC diagnostic pop -#endif +#pragma once + +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-parameter" +#endif + +//===-- Parser.h - Parser for LLVM IR text assembly files -------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +// These classes are implemented by the lib/AsmParser library. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_ASMPARSER_PARSER_H +#define LLVM_ASMPARSER_PARSER_H + +#include "llvm/ADT/STLExtras.h" +#include "llvm/ADT/StringRef.h" +#include <memory> + +namespace llvm { + +class Constant; +class LLVMContext; +class MemoryBufferRef; +class Module; +class ModuleSummaryIndex; +struct SlotMapping; +class SMDiagnostic; +class Type; + +typedef llvm::function_ref<Optional<std::string>(StringRef)> + DataLayoutCallbackTy; + +/// This function is a main interface to the LLVM Assembly Parser. It parses +/// an ASCII file that (presumably) contains LLVM Assembly code. It returns a +/// Module (intermediate representation) with the corresponding features. Note +/// that this does not verify that the generated Module is valid, so you should +/// run the verifier after parsing the file to check that it is okay. +/// Parse LLVM Assembly from a file +/// \param Filename The name of the file to parse +/// \param Err Error result info. +/// \param Context Context in which to allocate globals info. +/// \param Slots The optional slot mapping that will be initialized during +/// parsing. +std::unique_ptr<Module> parseAssemblyFile(StringRef Filename, SMDiagnostic &Err, + LLVMContext &Context, + SlotMapping *Slots = nullptr); + +/// The function is a secondary interface to the LLVM Assembly Parser. It parses +/// an ASCII string that (presumably) contains LLVM Assembly code. It returns a +/// Module (intermediate representation) with the corresponding features. Note +/// that this does not verify that the generated Module is valid, so you should +/// run the verifier after parsing the file to check that it is okay. +/// Parse LLVM Assembly from a string +/// \param AsmString The string containing assembly +/// \param Err Error result info. +/// \param Context Context in which to allocate globals info. +/// \param Slots The optional slot mapping that will be initialized during +/// parsing. +std::unique_ptr<Module> parseAssemblyString(StringRef AsmString, + SMDiagnostic &Err, + LLVMContext &Context, + SlotMapping *Slots = nullptr); + +/// Holds the Module and ModuleSummaryIndex returned by the interfaces +/// that parse both. +struct ParsedModuleAndIndex { + std::unique_ptr<Module> Mod; + std::unique_ptr<ModuleSummaryIndex> Index; +}; + +/// This function is a main interface to the LLVM Assembly Parser. It parses +/// an ASCII file that (presumably) contains LLVM Assembly code, including +/// a module summary. It returns a Module (intermediate representation) and +/// a ModuleSummaryIndex with the corresponding features. Note that this does +/// not verify that the generated Module or Index are valid, so you should +/// run the verifier after parsing the file to check that they are okay. +/// Parse LLVM Assembly from a file +/// \param Filename The name of the file to parse +/// \param Err Error result info. +/// \param Context Context in which to allocate globals info. +/// \param Slots The optional slot mapping that will be initialized during +/// parsing. +/// \param DataLayoutCallback Override datalayout in the llvm assembly. +ParsedModuleAndIndex parseAssemblyFileWithIndex( + StringRef Filename, SMDiagnostic &Err, LLVMContext &Context, + SlotMapping *Slots = nullptr, + DataLayoutCallbackTy DataLayoutCallback = [](StringRef) { return None; }); + +/// Only for use in llvm-as for testing; this does not produce a valid module. +ParsedModuleAndIndex parseAssemblyFileWithIndexNoUpgradeDebugInfo( + StringRef Filename, SMDiagnostic &Err, LLVMContext &Context, + SlotMapping *Slots, DataLayoutCallbackTy DataLayoutCallback); + +/// This function is a main interface to the LLVM Assembly Parser. It parses +/// an ASCII file that (presumably) contains LLVM Assembly code for a module +/// summary. It returns a a ModuleSummaryIndex with the corresponding features. +/// Note that this does not verify that the generated Index is valid, so you +/// should run the verifier after parsing the file to check that it is okay. +/// Parse LLVM Assembly Index from a file +/// \param Filename The name of the file to parse +/// \param Err Error result info. +std::unique_ptr<ModuleSummaryIndex> +parseSummaryIndexAssemblyFile(StringRef Filename, SMDiagnostic &Err); + +/// parseAssemblyFile and parseAssemblyString are wrappers around this function. +/// Parse LLVM Assembly from a MemoryBuffer. +/// \param F The MemoryBuffer containing assembly +/// \param Err Error result info. +/// \param Slots The optional slot mapping that will be initialized during +/// parsing. +/// \param DataLayoutCallback Override datalayout in the llvm assembly. +std::unique_ptr<Module> parseAssembly( + MemoryBufferRef F, SMDiagnostic &Err, LLVMContext &Context, + SlotMapping *Slots = nullptr, + DataLayoutCallbackTy DataLayoutCallback = [](StringRef) { return None; }); + +/// Parse LLVM Assembly including the summary index from a MemoryBuffer. +/// +/// \param F The MemoryBuffer containing assembly with summary +/// \param Err Error result info. +/// \param Slots The optional slot mapping that will be initialized during +/// parsing. +/// +/// parseAssemblyFileWithIndex is a wrapper around this function. +ParsedModuleAndIndex parseAssemblyWithIndex(MemoryBufferRef F, + SMDiagnostic &Err, + LLVMContext &Context, + SlotMapping *Slots = nullptr); + +/// Parse LLVM Assembly for summary index from a MemoryBuffer. +/// +/// \param F The MemoryBuffer containing assembly with summary +/// \param Err Error result info. +/// +/// parseSummaryIndexAssemblyFile is a wrapper around this function. +std::unique_ptr<ModuleSummaryIndex> +parseSummaryIndexAssembly(MemoryBufferRef F, SMDiagnostic &Err); + +/// This function is the low-level interface to the LLVM Assembly Parser. +/// This is kept as an independent function instead of being inlined into +/// parseAssembly for the convenience of interactive users that want to add +/// recently parsed bits to an existing module. +/// +/// \param F The MemoryBuffer containing assembly +/// \param M The module to add data to. +/// \param Index The index to add data to. +/// \param Err Error result info. +/// \param Slots The optional slot mapping that will be initialized during +/// parsing. +/// \return true on error. +/// \param DataLayoutCallback Override datalayout in the llvm assembly. +bool parseAssemblyInto( + MemoryBufferRef F, Module *M, ModuleSummaryIndex *Index, SMDiagnostic &Err, + SlotMapping *Slots = nullptr, + DataLayoutCallbackTy DataLayoutCallback = [](StringRef) { return None; }); + +/// Parse a type and a constant value in the given string. +/// +/// The constant value can be any LLVM constant, including a constant +/// expression. +/// +/// \param Slots The optional slot mapping that will restore the parsing state +/// of the module. +/// \return null on error. +Constant *parseConstantValue(StringRef Asm, SMDiagnostic &Err, const Module &M, + const SlotMapping *Slots = nullptr); + +/// Parse a type in the given string. +/// +/// \param Slots The optional slot mapping that will restore the parsing state +/// of the module. +/// \return null on error. +Type *parseType(StringRef Asm, SMDiagnostic &Err, const Module &M, + const SlotMapping *Slots = nullptr); + +/// Parse a string \p Asm that starts with a type. +/// \p Read[out] gives the number of characters that have been read to parse +/// the type in \p Asm. +/// +/// \param Slots The optional slot mapping that will restore the parsing state +/// of the module. +/// \return null on error. +Type *parseTypeAtBeginning(StringRef Asm, unsigned &Read, SMDiagnostic &Err, + const Module &M, const SlotMapping *Slots = nullptr); + +} // End llvm namespace + +#endif + +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif diff --git a/contrib/libs/llvm12/include/llvm/AsmParser/SlotMapping.h b/contrib/libs/llvm12/include/llvm/AsmParser/SlotMapping.h index d40e0b9de3..2985d597a0 100644 --- a/contrib/libs/llvm12/include/llvm/AsmParser/SlotMapping.h +++ b/contrib/libs/llvm12/include/llvm/AsmParser/SlotMapping.h @@ -1,52 +1,52 @@ -#pragma once - -#ifdef __GNUC__ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-parameter" -#endif - -//===-- SlotMapping.h - Slot number mapping for unnamed values --*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// -// -// This file contains the declaration of the SlotMapping struct. -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_ASMPARSER_SLOTMAPPING_H -#define LLVM_ASMPARSER_SLOTMAPPING_H - -#include "llvm/ADT/StringMap.h" -#include "llvm/IR/TrackingMDRef.h" -#include <map> -#include <vector> - -namespace llvm { - -class GlobalValue; -class Type; - -/// This struct contains the mappings from the slot numbers to unnamed metadata -/// nodes, global values and types. It also contains the mapping for the named -/// types. -/// It can be used to save the parsing state of an LLVM IR module so that the -/// textual references to the values in the module can be parsed outside of the -/// module's source. -struct SlotMapping { - std::vector<GlobalValue *> GlobalValues; - std::map<unsigned, TrackingMDNodeRef> MetadataNodes; - StringMap<Type *> NamedTypes; - std::map<unsigned, Type *> Types; -}; - -} // end namespace llvm - -#endif - -#ifdef __GNUC__ -#pragma GCC diagnostic pop -#endif +#pragma once + +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-parameter" +#endif + +//===-- SlotMapping.h - Slot number mapping for unnamed values --*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +// This file contains the declaration of the SlotMapping struct. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_ASMPARSER_SLOTMAPPING_H +#define LLVM_ASMPARSER_SLOTMAPPING_H + +#include "llvm/ADT/StringMap.h" +#include "llvm/IR/TrackingMDRef.h" +#include <map> +#include <vector> + +namespace llvm { + +class GlobalValue; +class Type; + +/// This struct contains the mappings from the slot numbers to unnamed metadata +/// nodes, global values and types. It also contains the mapping for the named +/// types. +/// It can be used to save the parsing state of an LLVM IR module so that the +/// textual references to the values in the module can be parsed outside of the +/// module's source. +struct SlotMapping { + std::vector<GlobalValue *> GlobalValues; + std::map<unsigned, TrackingMDNodeRef> MetadataNodes; + StringMap<Type *> NamedTypes; + std::map<unsigned, Type *> Types; +}; + +} // end namespace llvm + +#endif + +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif |