llvm-project/llvm/utils/TableGen
Craig Topper 98a9628b09 [TableGen] Teach tablegen to allow SDNPCommutable nodes with more than 2 operands.
Summary:
Tablegen already supports commutable instrinsics with more than 2 operands. There it just assumes the first two operands are commutable.

I plan to use this to improve the generation of FMA patterns in the X86 backend.

Reviewers: aymanmus, zvi, RKSimon, spatel, arsenm

Reviewed By: arsenm

Subscribers: arsenm, llvm-commits

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

llvm-svn: 312464
2017-09-04 03:44:33 +00:00
..
AsmMatcherEmitter.cpp [TableGen] AsmMatcher: fix OpIdx computation when HasOptionalOperands is true 2017-08-07 13:55:27 +00:00
AsmWriterEmitter.cpp [TableGen] Use StringRef instead of std::string for CodeGenInstruction namespace. NFC 2017-07-07 06:22:35 +00:00
AsmWriterInst.cpp
AsmWriterInst.h
Attributes.cpp [TableGen] Adapt more places to getValueAsString now returning a StringRef instead of a std::string. 2017-05-31 21:12:46 +00:00
CMakeLists.txt [x86] Revert the X86FoldTablesEmitter due to more miscompiles. 2017-06-06 02:15:31 +00:00
CTagsEmitter.cpp Use StringRef for MemoryBuffer identifier API (NFC) 2016-10-01 16:38:28 +00:00
CallingConvEmitter.cpp Cleanup dump() functions. 2017-01-28 02:02:38 +00:00
CodeEmitterGen.cpp [tablegen] Avoid creating a temporary vector in getInstructionCase 2017-07-04 06:16:53 +00:00
CodeGenDAGPatterns.cpp [TableGen] Teach tablegen to allow SDNPCommutable nodes with more than 2 operands. 2017-09-04 03:44:33 +00:00
CodeGenDAGPatterns.h [TableGen] Remove some copies around PatternToMatch. 2017-06-25 17:33:49 +00:00
CodeGenInstruction.cpp [TableGen] Add EncoderMethod to RegisterOperand 2017-05-15 10:13:07 +00:00
CodeGenInstruction.h [TableGen] Use StringRef instead of std::string for CodeGenInstruction namespace. NFC 2017-07-07 06:22:35 +00:00
CodeGenIntrinsics.h TableGen: Add IntrHasSideEffects property for intrinsics 2017-04-28 21:01:46 +00:00
CodeGenMapTable.cpp [TableGen] Use StringRef instead of std::string for CodeGenInstruction namespace. NFC 2017-07-07 06:22:35 +00:00
CodeGenRegisters.cpp Try to fix compilation problem with libstdc++ 2017-08-28 20:11:28 +00:00
CodeGenRegisters.h TableGen: Fix subreg composition/concatenation 2017-08-28 19:48:42 +00:00
CodeGenSchedule.cpp [TableGen] Improve Debug Output for --debug-only=subtarget-emitter NFCI 2017-06-28 00:06:40 +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 std::string for CodeGenInstruction namespace. NFC 2017-07-07 06:22:35 +00:00
CodeGenTarget.h [TableGen] Use StringRef instead of std::string for CodeGenInstruction namespace. NFC 2017-07-07 06:22:35 +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
DAGISelMatcher.h Remove `inline` keyword from inline `classof` methods 2017-06-29 19:35:17 +00:00
DAGISelMatcherEmitter.cpp [tablegen] Use categories on options that only matter to one emitter. 2017-03-27 13:15:13 +00:00
DAGISelMatcherGen.cpp NFC: spell correction. 2017-07-30 20:12:17 +00:00
DAGISelMatcherOpt.cpp [TableGen] Use less stack in DAGISelMatcherOpt 2017-02-06 19:41:44 +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] Cleanup capturing of instruction namespace for the fast isel emitter to remove a std::string and duplicated code. NFC 2017-07-07 06:22:36 +00:00
FixedLenDecoderEmitter.cpp [tablegen] Avoid creating temporary strings 2017-07-05 20:14:54 +00:00
GlobalISelEmitter.cpp [globalisel][tablegen] Predicates should start from GIPFP_Invalid+1 not GIPFP_Invalid 2017-08-24 18:54:16 +00:00
InstrInfoEmitter.cpp [TableGen] Use StringRef instead of std::string for CodeGenInstruction namespace. NFC 2017-07-07 06:22:35 +00:00
IntrinsicEmitter.cpp [IR] Abstract away ArgNo+1 attribute indexing as much as possible 2017-05-03 18:17:31 +00:00
LLVMBuild.txt
OptParserEmitter.cpp [Bash-autocompletion] Add support for -std= 2017-08-29 02:01:56 +00:00
PseudoLoweringEmitter.cpp TableGen: Use StringInit instead of std::string for DagInit arg names 2016-12-05 06:00:46 +00:00
RegisterBankEmitter.cpp [TableGen] Fix some mismatches in the use of Namespace fields versus Target name in some of our emitters. 2017-07-07 05:19:25 +00:00
RegisterInfoEmitter.cpp TableGen: Add -gen-register-info-debug-dump 2017-08-28 19:48:40 +00:00
SearchableTableEmitter.cpp [tablegen] Avoid creating temporary strings 2017-07-05 20:14:54 +00:00
SequenceToOffsetTable.h
SubtargetEmitter.cpp [tablegen] Avoid creating temporary strings 2017-07-05 20:14:54 +00:00
SubtargetFeatureInfo.cpp [globalisel][tablegen] Compute available feature bits correctly. 2017-04-29 17:30:09 +00:00
SubtargetFeatureInfo.h [globalisel][tablegen] Compute available feature bits correctly. 2017-04-29 17:30:09 +00:00
TableGen.cpp [x86] Revert the X86FoldTablesEmitter due to more miscompiles. 2017-06-06 02:15:31 +00:00
TableGenBackends.h [x86] Revert the X86FoldTablesEmitter due to more miscompiles. 2017-06-06 02:15:31 +00:00
Types.cpp [globalisel][tablegen] Import SelectionDAG's rule predicates and support the equivalent in GIRule. 2017-04-21 15:59:56 +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 fix trivial typos in comments; NFC 2017-07-04 13:09:29 +00:00
X86DisassemblerTables.h fix trivial typos in comments; NFC 2017-07-04 13:09:29 +00:00
X86EVEX2VEXTablesEmitter.cpp [AVX512] Add 128->256 vbroadcastf64x2/vbroadcasti64x2 instructions to the EVEX->VEX table. 2017-08-21 05:03:28 +00:00
X86ModRMFilters.cpp
X86ModRMFilters.h fix trivial typos in comments; NFC 2017-07-04 13:09:29 +00:00
X86RecognizableInstr.cpp [tablegen] Avoid creating temporary strings 2017-07-05 20:14:54 +00:00
X86RecognizableInstr.h fix trivial typos in comments; NFC 2017-07-04 13:09:29 +00:00
tdtags