1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 04:32:44 +01:00
llvm-mirror/utils/TableGen
Jan Svoboda 2946e24cb2 [clang][cli] Port DiagnosticOpts to new option parsing system
This patch introduces additional infrastructure necessary to accommodate DiagnosticOptions.

DiagnosticOptions are unique in that they are parsed by the same function in cc1 AND in the Clang driver. The call to the parsing function from the driver occurs early on in the compilation process, where no proper DiagnosticEngine exists, because the diagnostic options (passed through command line) are not known yet.

To preserve the current behavior, we need to be able to selectively parse:
* all options (for -cc1),
* only diagnostic options (for driver).

This patch achieves that in the following way:
* new MacroPrefix field is added to the Option TableGen class,
* new IsDiag TableGen mixin sets MacroPrefix to "DIAG_",
* TableGen backend serializes option records into a macro with the prefix,
* CompilerInvocation parse/generate methods define the [DIAG_]OPTION_WITH_MARSHALLING macros to handle diagnostic options separately.

Depends on D93700, D93701 & D93702.

Reviewed By: dexonsmith

Differential Revision: https://reviews.llvm.org/D84673
2021-01-08 10:44:22 +01:00
..
GlobalISel [llvm] Use *Map::lookup (NFC) 2021-01-01 12:44:54 -08:00
AsmMatcherEmitter.cpp [llvm] Use llvm::all_of (NFC) 2021-01-06 18:27:36 -08:00
AsmWriterEmitter.cpp [TableGen] Use llvm::erase_if (NFC) 2020-12-26 12:06:26 -08:00
AsmWriterInst.cpp [MCInstPrinter] Pass Address parameter to MCOI::OPERAND_PCREL typed operands. NFC 2020-03-26 08:21:15 -07:00
AsmWriterInst.h [MCInstPrinter] Pass Address parameter to MCOI::OPERAND_PCREL typed operands. NFC 2020-03-26 08:21:15 -07:00
Attributes.cpp Sort EnumAttr so it matches Attribute::operator< 2020-04-26 17:00:25 +02:00
CallingConvEmitter.cpp [TableGen] Add frontend/backend phase timing capability. 2020-11-14 10:10:29 -05:00
CMakeLists.txt [openmp] Base of tablegen generated OpenMP common declaration 2020-06-23 10:32:32 -04:00
CodeEmitterGen.cpp [TableGen] Add field kind to the RecordVal class. 2021-01-07 09:31:27 -05:00
CodeGenDAGPatterns.cpp [TableGen] Make CodeGenDAGPatterns::getSDNodeNamed take a StringRef instead of const std::string &. 2021-01-07 14:20:16 -08:00
CodeGenDAGPatterns.h [TableGen] Make CodeGenDAGPatterns::getSDNodeNamed take a StringRef instead of const std::string &. 2021-01-07 14:20:16 -08:00
CodeGenHwModes.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
CodeGenHwModes.h Explicitly include <cassert> when using assert 2020-03-02 22:45:28 +01:00
CodeGenInstruction.cpp [TableGen] Handle (outs variable_ops) 2020-06-04 16:07:33 +03:00
CodeGenInstruction.h Explicitly include <cassert> when using assert 2020-03-02 22:45:28 +01:00
CodeGenIntrinsics.h [IR] Add NoUndef attribute to Intrinsics.td 2020-08-27 02:54:48 +09:00
CodeGenMapTable.cpp [TableGen] Return const std::string& in InstrMap getName()/getFilterClass() methods. NFCI. 2020-12-17 15:23:03 +00:00
CodeGenRegisters.cpp [llvm] Use *Map::lookup (NFC) 2021-01-01 12:44:54 -08:00
CodeGenRegisters.h [TableGen] Use llvm::is_contained (NFC) 2020-11-06 14:18:01 -08:00
CodeGenSchedule.cpp [TableGen] Use llvm::append_range (NFC) 2021-01-02 09:24:13 -08:00
CodeGenSchedule.h [TableGen] Fix D90844 introduced non-determinism due to iteration over a std::map over allocated object pointers 2020-12-18 12:08:16 -08:00
CodeGenTarget.cpp [GlobalISel][TableGen] Fix ConstrainOperandRC bug 2021-01-05 09:30:04 +01:00
CodeGenTarget.h [GlobalISel][TableGen] Fix ConstrainOperandRC bug 2021-01-05 09:30:04 +01:00
CTagsEmitter.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
DAGISelEmitter.cpp [Timer] Add a command option to enable/disable timer sorting. 2020-11-28 11:43:38 -05:00
DAGISelMatcher.cpp [TableGen] Replace a dyn_cast with isa to avoid an unused variable warning introduced in r355785. NFC 2019-03-11 16:51:37 +00:00
DAGISelMatcher.h [TableGen] [ISel Matcher Emitter] Rework with two passes: one to size, one to emit 2020-11-21 10:59:13 -05:00
DAGISelMatcherEmitter.cpp [TableGen] [ISel Matcher Emitter] Rework with two passes: one to size, one to emit 2020-11-21 10:59:13 -05:00
DAGISelMatcherGen.cpp [TableGen] Indentation and whitespace fixes in generated code. NFC. 2020-11-06 16:10:57 +00:00
DAGISelMatcherOpt.cpp DAGISelMatcherOpt - TGParser::ParseOperation - silence static analyzer cast_or_null<CheckTypeMatcher> null dereference warning. NFCI. 2019-09-26 17:38:47 +00:00
DFAEmitter.cpp [TableGen] Eliminate the 'code' type 2020-12-03 10:19:11 -05:00
DFAEmitter.h DFAEmitter.h - remove unnecessary headers. NFC. 2020-05-08 14:53:10 +01:00
DFAPacketizerEmitter.cpp [TableGen] Indentation and whitespace fixes in generated code. NFC. 2020-11-06 16:10:57 +00:00
DirectiveEmitter.cpp [openacc][openmp][NFC] Fix typo in comments 2020-12-22 09:59:50 -05:00
DisassemblerEmitter.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
ExegesisEmitter.cpp [TableGen] Indentation and whitespace fixes in generated code. NFC. 2020-11-06 16:10:57 +00:00
FastISelEmitter.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
FixedLenDecoderEmitter.cpp [TableGen] Add field kind to the RecordVal class. 2021-01-07 09:31:27 -05:00
GICombinerEmitter.cpp [llvm] Use llvm::any_of (NFC) 2021-01-04 11:42:47 -08:00
GlobalISelEmitter.cpp [GlobalISel][TableGen] Fix ConstrainOperandRC bug 2021-01-05 09:30:04 +01:00
InfoByHwMode.cpp [TableGen] Support encoding per-HwMode 2019-09-19 13:39:54 +00:00
InfoByHwMode.h [TableGen] Support encoding per-HwMode 2019-09-19 13:39:54 +00:00
InstrDocsEmitter.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
InstrInfoEmitter.cpp [MCInstrDesc] [TableGen] Reduce size of MCOperandInfo instances. 2020-12-22 09:44:30 -05:00
IntrinsicEmitter.cpp [X86] Add x86_amx type for intel AMX. 2020-12-30 13:52:13 +08:00
OptEmitter.cpp [TableGen] Add backend to generate command guide for tools using libOption. 2019-11-22 14:10:17 -08:00
OptEmitter.h [TableGen] Add backend to generate command guide for tools using libOption. 2019-11-22 14:10:17 -08:00
OptParserEmitter.cpp [clang][cli] Port DiagnosticOpts to new option parsing system 2021-01-08 10:44:22 +01:00
OptRSTEmitter.cpp Avoid including FileSystem.h from MemoryBuffer.h 2020-02-29 12:30:23 -08:00
PredicateExpander.cpp [ARM][SchedModels] Convert IsPredicatedPred to MCSchedPredicate 2020-10-19 11:37:54 +03:00
PredicateExpander.h [ARM][SchedModels] Convert IsPredicatedPred to MCSchedPredicate 2020-10-19 11:37:54 +03:00
PseudoLoweringEmitter.cpp [TableGen] Add frontend/backend phase timing capability. 2020-11-14 10:10:29 -05:00
RegisterBankEmitter.cpp [TableGen] RegisterBankEmitter - Pass Twine by const reference instead of by value. NFCI. 2021-01-06 14:22:05 +00:00
RegisterInfoEmitter.cpp [llvm] Use llvm::lower_bound and llvm::upper_bound (NFC) 2021-01-05 21:15:59 -08:00
RISCVCompressInstEmitter.cpp [TableGen] Eliminate the 'code' type 2020-12-03 10:19:11 -05:00
SDNodeProperties.cpp [tablegen] Add locations to many PrintFatalError() calls 2019-02-12 17:36:57 +00:00
SDNodeProperties.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
SearchableTableEmitter.cpp [TableGen] Eliminate the 'code' type 2020-12-03 10:19:11 -05:00
SequenceToOffsetTable.h [tablegen] Emit string literals instead of char arrays 2020-01-27 18:22:25 +00:00
SubtargetEmitter.cpp [TableGen] Use llvm::append_range (NFC) 2021-01-02 09:24:13 -08:00
SubtargetFeatureInfo.cpp [TableGen] Indentation and whitespace fixes in generated code. NFC. 2020-11-06 16:10:57 +00:00
SubtargetFeatureInfo.h SubtargetFeatureInfo.h - remove unnecessary include and forward declarations. NFCI. 2020-07-20 13:39:24 +01:00
TableGen.cpp [TableGen] Add frontend/backend phase timing capability. 2020-11-14 10:10:29 -05:00
TableGenBackends.h [flang][openmp] Check clauses allowed semantic with tablegen generated map 2020-07-11 12:45:12 -04:00
tdtags Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Types.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Types.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
WebAssemblyDisassemblerEmitter.cpp [TableGen] Use llvm::append_range (NFC) 2021-01-02 09:24:13 -08:00
WebAssemblyDisassemblerEmitter.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
X86DisassemblerShared.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
X86DisassemblerTables.cpp [X86] Remove MODRM_SPLITREGM from the disassembler tables. 2020-07-03 00:16:20 -07:00
X86DisassemblerTables.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
X86EVEX2VEXTablesEmitter.cpp [X86] Consider isCodeGenOnly in the EVEX2VEX pass to make VMAXPD/PS map to the non-commutable VEX instruction. Use EVEX2VEX override to fix the scalar instructions. 2019-10-01 07:10:09 +00:00
X86FoldTablesEmitter.cpp [X86] Sort the tables before printing in X86FoldTablesEmitter. 2020-10-18 17:39:38 -07:00
X86ModRMFilters.cpp [X86-64] Support Intel AMX instructions 2020-07-02 08:57:04 +08:00
X86ModRMFilters.h [X86-64] Support Intel AMX instructions 2020-07-02 08:57:04 +08:00
X86RecognizableInstr.cpp [X86] Avoid std::string creation in RecognizableInstr constructor. NFCI. 2020-12-18 16:00:41 +00:00
X86RecognizableInstr.h [X86-64] Support Intel AMX instructions 2020-07-02 08:57:04 +08:00