1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 04:32:44 +01:00
llvm-mirror/utils/TableGen
Luke Drummond a097bd08a1 [tablegen] Emit string literals instead of char arrays
This changes the generated (Instr|Asm|Reg|Regclass)Name tables from this
form:
    extern const char HexagonInstrNameData[] = {
      /* 0 */ 'G', '_', 'F', 'L', 'O', 'G', '1', '0', 0,
      /* 9 */ 'E', 'N', 'D', 'L', 'O', 'O', 'P', '0', 0,
      /* 18 */ 'V', '6', '_', 'v', 'd', 'd', '0', 0,
      /* 26 */ 'P', 'S', '_', 'v', 'd', 'd', '0', 0,
      [...]
    };

...to this:

    extern const char HexagonInstrNameData[] = {
      /* 0 */ "G_FLOG10\0"
      /* 9 */ "ENDLOOP0\0"
      /* 18 */ "V6_vdd0\0"
      /* 26 */ "PS_vdd0\0"
      [...]
    };

This should make debugging and exploration a lot easier for mortals,
while providing a significant compile-time reduction for common compilers.

To avoid issues with low implementation limits, this is disabled by
default for visual studio.

To force output one way or the other, pass
`--long-string-literals=<bool>` to `tablegen`

Reviewers: mstorsjo, rnk

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D73044

A variation of this patch was originally committed in ce23515f5ab011 and
then reverted in e464b31c due to build failures.
2020-01-27 18:22:25 +00:00
..
GlobalISel Fix warnings as errors that occur on sanitizer-x86_64-linux 2020-01-07 16:02:31 -08:00
AsmMatcherEmitter.cpp [TableGen] Fixes -Wrange-loop-analysis warnings 2019-12-22 18:58:32 +01:00
AsmWriterEmitter.cpp [tablegen] Emit string literals instead of char arrays 2020-01-27 18:22:25 +00:00
AsmWriterInst.cpp [tablegen] Add locations to many PrintFatalError() calls 2019-02-12 17:36:57 +00:00
AsmWriterInst.h AsmWriterOperand - fix uninitialized variable warning. NFCI. 2019-11-07 16:56:15 +00:00
Attributes.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CallingConvEmitter.cpp AArch64: support arm64_32, an ILP32 slice for watchOS. 2019-09-12 10:22:23 +00:00
CMakeLists.txt [TableGen] Add backend to generate command guide for tools using libOption. 2019-11-22 14:10:17 -08:00
CodeEmitterGen.cpp [TableGen] Fixes -Wrange-loop-analysis warnings 2019-12-22 18:58:32 +01:00
CodeGenDAGPatterns.cpp TableGen: Fix assert on PatFrags with predicate code 2019-12-30 14:24:25 -05:00
CodeGenDAGPatterns.h TableGen: Remove unused code 2020-01-09 10:32:57 -05:00
CodeGenHwModes.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CodeGenHwModes.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CodeGenInstruction.cpp [AArch64] Add isAuthenticated predicate to MCInstDesc 2020-01-10 14:30:52 -08:00
CodeGenInstruction.h [AArch64] Add isAuthenticated predicate to MCInstDesc 2020-01-10 14:30:52 -08:00
CodeGenIntrinsics.h TableGen/GlobalISel: Fix pattern matching of immarg literals 2020-01-09 17:37:52 -05:00
CodeGenMapTable.cpp [TableGen] CodeGenMapTable - Don't dereference a dyn_cast result. NFCI. 2019-09-17 17:32:15 +00:00
CodeGenRegisters.cpp TableGen: Work around assert on Mips register definitions 2020-01-24 12:15:10 -08:00
CodeGenRegisters.h TableGen: Delete some copy constuctors 2020-01-15 08:58:57 -05:00
CodeGenSchedule.cpp [TableGen] Improve error reporting of overlapping definitions (NFC) 2019-10-02 19:44:53 +00:00
CodeGenSchedule.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CodeGenTarget.cpp TableGen/GlobalISel: Fix pattern matching of immarg literals 2020-01-09 17:37:52 -05:00
CodeGenTarget.h [NFC] Fix trivial typos in comments 2020-01-06 10:50:26 +00: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 [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00: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: Support physical register inputs > 255 2019-07-22 15:02:34 +00:00
DAGISelMatcherEmitter.cpp TableGen: Support physical register inputs > 255 2019-07-22 15:02:34 +00:00
DAGISelMatcherGen.cpp TableGen: Remove assert that pattern results match input number 2019-11-06 16:06:37 -08: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 Revert "Avoid creating an immutable map in the Automaton class." 2020-01-17 10:20:36 +01:00
DFAEmitter.h [TableGen] Introduce a generic automaton (DFA) backend 2019-10-04 09:03:36 +00:00
DFAPacketizerEmitter.cpp [DFAPacketizer] Allow up to 64 functional units 2019-11-05 15:41:42 +00:00
DisassemblerEmitter.cpp [TableGen] Correct comments for end of namespace. NFC 2019-08-25 10:47:30 +00:00
ExegesisEmitter.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FastISelEmitter.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FixedLenDecoderEmitter.cpp Reduce scope of variable to silence cppcheck warning. NFC 2019-11-09 22:10:09 +00:00
GICombinerEmitter.cpp [gicombiner] Add GIMatchTree and use it for the code generation 2020-01-07 11:12:53 -08:00
GlobalISelEmitter.cpp TableGen/GlobalISel: Handle non-leaf EXTRACT_SUBREG 2020-01-24 12:15:10 -08: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 [AArch64] Add isAuthenticated predicate to MCInstDesc 2020-01-10 14:30:52 -08:00
InstrInfoEmitter.cpp [tablegen] Emit string literals instead of char arrays 2020-01-27 18:22:25 +00:00
IntrinsicEmitter.cpp [Intrinsic] Delete tablegen rules of llvm.{sig,}{setjmp,longjmp} 2019-12-27 18:04:39 -08:00
LLVMBuild.txt Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00: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 [TableGen] Fixes -Wrange-loop-analysis warnings 2019-12-22 18:58:32 +01:00
OptRSTEmitter.cpp [TableGen] Fixed 'unused but set variable' warning. NFCI 2019-11-24 20:04:03 +01:00
PredicateExpander.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
PredicateExpander.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
PseudoLoweringEmitter.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
RegisterBankEmitter.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
RegisterInfoEmitter.cpp [tablegen] Emit string literals instead of char arrays 2020-01-27 18:22:25 +00:00
RISCVCompressInstEmitter.cpp TableGen: Delete some copy constuctors 2020-01-15 08:58:57 -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 Fix uninitialized variable warnings. NFCI. 2019-11-09 17:03:21 +00:00
SequenceToOffsetTable.h [tablegen] Emit string literals instead of char arrays 2020-01-27 18:22:25 +00:00
SubtargetEmitter.cpp [TableGen] Fix a bug that MCSchedClassDesc is interfered between different SchedModel 2019-10-11 08:36:54 +00:00
SubtargetFeatureInfo.cpp Use a bit of relaxed constexpr to make FeatureBitset costant intializable 2019-08-24 15:02:44 +00:00
SubtargetFeatureInfo.h Use bitset for assembler predicates 2019-03-11 17:04:35 +00:00
TableGen.cpp [tablegen] Emit string literals instead of char arrays 2020-01-27 18:22:25 +00:00
TableGenBackends.h [TableGen] Remove unused target intrinsic generation logic 2019-12-11 07:38:45 -08: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] Correct comments for end of namespace. NFC 2019-08-25 10:47:30 +00: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][Disassembler] Shrink X86GenDisassemblerTables.inc from 36M to 6.1M 2020-01-11 17:28:22 -08: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 X86FoldTablesEmitter - fix static analyzer potential invalid iterator warning. NFCI. 2019-11-06 13:31:00 +00:00
X86ModRMFilters.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
X86ModRMFilters.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
X86RecognizableInstr.cpp [ms] [X86] Use "P" modifier on all branch-target operands in inline X86 assembly. 2020-01-09 14:55:03 -05:00
X86RecognizableInstr.h [X86] Split the VEX_WPrefix in X86Inst tablegen class into 3 separate fields with clear meanings. 2019-04-09 07:40:06 +00:00