1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/utils/TableGen
Stanislav Mekhanoshin 563a9ce27a [TBLGEN] Fix subreg value overflow in DAGISelMatcher
Tablegen's DAGISelMatcher emits integers in a VBR format,
so if an integer is below 128 it can fit into a single
byte, otherwise high bit is set, next byte is used etc.
MatcherTable is essentially an unsigned char table. When
SelectionDAGISel parses the table it does a reverse translation.

In a situation when numeric value of an integer to emit is
unknown it can be emitted not as OPC_EmitInteger but as
OPC_EmitStringInteger using a symbolic name of the value.
In this situation the value should not exceed 127.

One of the situations when OPC_EmitStringInteger is used is
if we need to emit a subreg into a matcher table. However,
number of subregs can exceed 127. Currently last defined subreg
for AMDGPU is 192. That results in a silent bug in the ISel
with matcher reading from an invalid offset.

Fixed this bug to emit actual VBR encoded value for a subregs
which value exceeds 127.

Differential Revision: https://reviews.llvm.org/D74368
2020-02-12 13:29:57 -08:00
..
GlobalISel Fix warnings as errors that occur on sanitizer-x86_64-linux 2020-01-07 16:02:31 -08:00
AsmMatcherEmitter.cpp Address implicit conversions detected by g++ 5 only. 2020-01-29 01:01:09 +01:00
AsmWriterEmitter.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
AsmWriterInst.cpp
AsmWriterInst.h
Attributes.cpp [NFC] Refactor TableGen for attributes 2020-02-02 15:12:20 +01:00
CallingConvEmitter.cpp
CMakeLists.txt
CodeEmitterGen.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
CodeGenDAGPatterns.cpp Fix a couple more implicit conversions that Clang doesn't diagnose. 2020-01-29 00:42:56 +01:00
CodeGenDAGPatterns.h Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
CodeGenHwModes.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
CodeGenHwModes.h
CodeGenInstruction.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01: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 Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
CodeGenRegisters.cpp [TBLGEN] Fix subreg value overflow in DAGISelMatcher 2020-02-12 13:29:57 -08:00
CodeGenRegisters.h [TBLGEN] Fix subreg value overflow in DAGISelMatcher 2020-02-12 13:29:57 -08:00
CodeGenSchedule.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
CodeGenSchedule.h Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
CodeGenTarget.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
CodeGenTarget.h [NFC] Fix trivial typos in comments 2020-01-06 10:50:26 +00:00
CTagsEmitter.cpp
DAGISelEmitter.cpp
DAGISelMatcher.cpp
DAGISelMatcher.h
DAGISelMatcherEmitter.cpp [TBLGEN] Fix subreg value overflow in DAGISelMatcher 2020-02-12 13:29:57 -08:00
DAGISelMatcherGen.cpp [TBLGEN] Fix subreg value overflow in DAGISelMatcher 2020-02-12 13:29:57 -08:00
DAGISelMatcherOpt.cpp
DFAEmitter.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
DFAEmitter.h
DFAPacketizerEmitter.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
DisassemblerEmitter.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
ExegesisEmitter.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
FastISelEmitter.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
FixedLenDecoderEmitter.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
GICombinerEmitter.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
GlobalISelEmitter.cpp Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
InfoByHwMode.cpp
InfoByHwMode.h
InstrDocsEmitter.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
InstrInfoEmitter.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
IntrinsicEmitter.cpp
LLVMBuild.txt
OptEmitter.cpp
OptEmitter.h
OptParserEmitter.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
OptRSTEmitter.cpp
PredicateExpander.cpp
PredicateExpander.h
PseudoLoweringEmitter.cpp
RegisterBankEmitter.cpp
RegisterInfoEmitter.cpp [TBLGEN] Fix subreg value overflow in DAGISelMatcher 2020-02-12 13:29:57 -08:00
RISCVCompressInstEmitter.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
SDNodeProperties.cpp
SDNodeProperties.h
SearchableTableEmitter.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
SequenceToOffsetTable.h [tablegen] Emit string literals instead of char arrays 2020-01-27 18:22:25 +00:00
SubtargetEmitter.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
SubtargetFeatureInfo.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
SubtargetFeatureInfo.h
TableGen.cpp [tablegen] Emit string literals instead of char arrays 2020-01-27 18:22:25 +00:00
TableGenBackends.h
tdtags
Types.cpp
Types.h
WebAssemblyDisassemblerEmitter.cpp
WebAssemblyDisassemblerEmitter.h
X86DisassemblerShared.h
X86DisassemblerTables.cpp [X86][Disassembler] Shrink X86GenDisassemblerTables.inc from 36M to 6.1M 2020-01-11 17:28:22 -08:00
X86DisassemblerTables.h
X86EVEX2VEXTablesEmitter.cpp
X86FoldTablesEmitter.cpp
X86ModRMFilters.cpp
X86ModRMFilters.h
X86RecognizableInstr.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
X86RecognizableInstr.h