llvm-project/llvm/utils/TableGen
Ahmed Bougacha 36f7035bd7 [GlobalISel] Add basic Selector-emitter tblgen backend.
This adds a basic tablegen backend that analyzes the SelectionDAG
patterns to find simple ones that are eligible for GlobalISel-emission.

That's similar to FastISel, with one notable difference: we're not fed
ISD opcodes, so we need to map the SDNode operators to generic opcodes.
That's done using GINodeEquiv in TargetGlobalISel.td.

Otherwise, this is mostly boilerplate, and lots of filtering of any kind
of "complicated" pattern. On AArch64, this is sufficient to match G_ADD
up to s64 (to ADDWrr/ADDXrr) and G_BR (to B).

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

llvm-svn: 290284
2016-12-21 23:26:20 +00:00
..
AsmMatcherEmitter.cpp Summary: Currently there is no way to disable deprecated warning from asm like this 2016-12-05 23:55:13 +00:00
AsmWriterEmitter.cpp TableGen: Use StringRef instead of const std::string& in return vals. 2016-12-04 05:48:16 +00:00
AsmWriterInst.cpp [TableGen] Remove the CGIOpNo from AsmWriterOperand as its not used for anything. NFC 2016-01-22 05:59:37 +00:00
AsmWriterInst.h [TableGen] Reorder fields in AsmWriterOperand to remove padding and reduce size. NFC 2016-01-22 05:59:40 +00:00
Attributes.cpp Use StringRef in TableGen emitted API for attribute (NFC) 2016-10-04 23:31:39 +00:00
CMakeLists.txt [GlobalISel] Add basic Selector-emitter tblgen backend. 2016-12-21 23:26:20 +00:00
CTagsEmitter.cpp Use StringRef for MemoryBuffer identifier API (NFC) 2016-10-01 16:38:28 +00:00
CallingConvEmitter.cpp Move most user of TargetMachine::getDataLayout to the Module one 2015-07-16 06:11:10 +00:00
CodeEmitterGen.cpp TableGen: Use StringRef instead of const std::string& in return vals. 2016-12-04 05:48:16 +00:00
CodeGenDAGPatterns.cpp [TableGen] Use 'unsigned' instead of 'bool' in a place where the code conditionally assigns numeric values. They happen to be 0 and 1 so this is NFC. 2016-12-19 08:35:08 +00:00
CodeGenDAGPatterns.h [GlobalISel] Add basic Selector-emitter tblgen backend. 2016-12-21 23:26:20 +00:00
CodeGenInstruction.cpp TableGen: Use StringInit instead of std::string for DagInit arg names 2016-12-05 06:00:46 +00:00
CodeGenInstruction.h This reapplies r281304. The issue was that I had missed 2016-09-14 08:20:03 +00:00
CodeGenIntrinsics.h Add IntrInaccessibleMemOnly property for intrinsics 2016-11-22 19:16:04 +00:00
CodeGenMapTable.cpp [tablegen] Delete duplicates from a vector without skipping elements 2016-12-01 19:38:50 +00:00
CodeGenRegisters.cpp Implement LaneBitmask::any(), use it to replace !none(), NFCI 2016-12-16 19:11:56 +00:00
CodeGenRegisters.h Extract LaneBitmask into a separate type 2016-12-15 14:36:06 +00:00
CodeGenSchedule.cpp Fix some Clang-tidy and Include What You Use warnings; other minor fixes (NFC). 2016-11-30 17:48:10 +00:00
CodeGenSchedule.h Revert "Revert "[misched] Extend scheduler to handle unsupported features"" 2016-06-24 08:43:27 +00:00
CodeGenTarget.cpp TableGen: Use StringRef instead of const std::string& in return vals. 2016-12-04 05:48:16 +00:00
CodeGenTarget.h TableGen: Use StringRef instead of const std::string& in return vals. 2016-12-04 05:48:16 +00:00
DAGISelEmitter.cpp TableGen: Use StringRef instead of const std::string& in return vals. 2016-12-04 05:48:16 +00:00
DAGISelMatcher.cpp [TableGen] Remove getHash support from DAGISelMatcher. It hasn't been used for some time. 2016-05-06 02:37:59 +00:00
DAGISelMatcher.h [TableGen] Remove isSafeToReorderWithPatternPredicate from DAGISelMatchers as its not used anymore. 2016-05-06 06:21:27 +00:00
DAGISelMatcherEmitter.cpp SDAG: Make SelectCodeCommon return void 2016-05-10 22:58:26 +00:00
DAGISelMatcherGen.cpp TableGen: Use StringRef instead of const std::string& in return vals. 2016-12-04 05:48:16 +00:00
DAGISelMatcherOpt.cpp [TableGen][ISel] When factoring ScopeMatcher, if the child of the ScopeMatcher we're working on is also a ScopeMatcher, merge all its children into the one we're working on. 2016-11-22 07:00:06 +00:00
DFAPacketizerEmitter.cpp Fix some Clang-tidy and Include What You Use warnings; other minor fixes (NFC). 2016-11-30 17:48:10 +00:00
DisassemblerEmitter.cpp TableGen: Use StringRef instead of const std::string& in return vals. 2016-12-04 05:48:16 +00:00
FastISelEmitter.cpp TableGen: Use StringRef instead of const std::string& in return vals. 2016-12-04 05:48:16 +00:00
FixedLenDecoderEmitter.cpp TableGen: Use StringInit instead of std::string for DagInit arg names 2016-12-05 06:00:46 +00:00
GlobalISelEmitter.cpp [GlobalISel] Add basic Selector-emitter tblgen backend. 2016-12-21 23:26:20 +00:00
InstrInfoEmitter.cpp [AMDGPU, PowerPC, TableGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2016-12-12 22:23:53 +00:00
IntrinsicEmitter.cpp Add IntrInaccessibleMemOnly property for intrinsics 2016-11-22 19:16:04 +00:00
LLVMBuild.txt
OptParserEmitter.cpp Fix some Clang-tidy modernize warnings, other minor fixes. 2015-11-04 22:32:32 +00:00
PseudoLoweringEmitter.cpp TableGen: Use StringInit instead of std::string for DagInit arg names 2016-12-05 06:00:46 +00:00
RegisterInfoEmitter.cpp Implement LaneBitmask::any(), use it to replace !none(), NFCI 2016-12-16 19:11:56 +00:00
SearchableTableEmitter.cpp [tblgen] Compare const char * with strcmp instead of creating StringRef. 2016-07-26 09:27:51 +00:00
SequenceToOffsetTable.h [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
SubtargetEmitter.cpp [AMDGPU, PowerPC, TableGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2016-12-09 22:06:55 +00:00
SubtargetFeatureInfo.cpp Check that emitted instructions meet their predicates on all targets except ARM, Mips, and X86. 2016-11-19 13:05:44 +00:00
SubtargetFeatureInfo.h TableGen: Use StringRef instead of const std::string& in return vals. 2016-12-04 05:48:16 +00:00
TableGen.cpp [GlobalISel] Add basic Selector-emitter tblgen backend. 2016-12-21 23:26:20 +00:00
TableGenBackends.h [GlobalISel] Add basic Selector-emitter tblgen backend. 2016-12-21 23:26:20 +00:00
Types.cpp Check that emitted instructions meet their predicates on all targets except ARM, Mips, and X86. 2016-11-19 13:05:44 +00:00
Types.h Check that emitted instructions meet their predicates on all targets except ARM, Mips, and X86. 2016-11-19 13:05:44 +00:00
X86DisassemblerShared.h
X86DisassemblerTables.cpp test commit: remove trailing whitespace 2016-06-20 20:43:26 +00:00
X86DisassemblerTables.h
X86ModRMFilters.cpp
X86ModRMFilters.h
X86RecognizableInstr.cpp [X86] Create a new instruction format to handle 4VOp3 encoding. This saves one bit in TSFlags and simplifies MRMSrcMem/MRMSrcReg format handling. 2016-08-22 07:38:50 +00:00
X86RecognizableInstr.h [X86] Create a new instruction format to handle 4VOp3 encoding. This saves one bit in TSFlags and simplifies MRMSrcMem/MRMSrcReg format handling. 2016-08-22 07:38:50 +00:00
tdtags