1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-25 14:02:52 +02:00
llvm-mirror/lib/Target/Hexagon
Daniel Sanders 811dc2eda3 Check that emitted instructions meet their predicates on all targets except ARM, Mips, and X86.
Summary:
* ARM is omitted from this patch because this check appears to expose bugs in this target.
* Mips is omitted from this patch because this check either detects bugs or deliberate
  emission of instructions that don't satisfy their predicates. One deliberate
  use is the SYNC instruction where the version with an operand is correctly
  defined as requiring MIPS32 while the version without an operand is defined
  as an alias of 'SYNC 0' and requires MIPS2.
* X86 is omitted from this patch because it doesn't use the tablegen-erated
  MCCodeEmitter infrastructure.

Patches for ARM and Mips will follow.

Depends on D25617

Reviewers: tstellarAMD, jmolloy

Subscribers: wdng, jmolloy, aemerson, rengolin, arsenm, jyknight, nemanjai, nhaehnle, tstellarAMD, llvm-commits

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

llvm-svn: 287439
2016-11-19 13:05:44 +00:00
..
AsmParser Fix spelling mistakes in Hexagon target comments. NFC. 2016-11-17 19:21:20 +00:00
Disassembler Support: Remove MemoryObject and DataStreamer interfaces. 2016-11-02 00:08:37 +00:00
MCTargetDesc Check that emitted instructions meet their predicates on all targets except ARM, Mips, and X86. 2016-11-19 13:05:44 +00:00
TargetInfo Move the global variables representing each Target behind accessor function 2016-10-09 23:00:34 +00:00
BitTracker.cpp [Hexagon] Clear the flow queue after visiting a single instruction 2016-09-13 14:36:55 +00:00
BitTracker.h [Hexagon-ish] Add function to print cell map contents in bit tracker 2016-08-03 18:13:32 +00:00
CMakeLists.txt Reapply r286080 with a phony change in Hexagon's CMakeLists.txt 2016-11-06 20:55:57 +00:00
Hexagon.h
Hexagon.td [Hexagon] Split all selection patterns into a separate file 2016-11-05 15:01:38 +00:00
HexagonAsmPrinter.cpp [Hexagon] Separate Hexagon subreg indices for different register classes 2016-11-09 16:19:08 +00:00
HexagonAsmPrinter.h Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
HexagonBitSimplify.cpp [Hexagon] Separate Hexagon subreg indices for different register classes 2016-11-09 16:19:08 +00:00
HexagonBitTracker.cpp [Hexagon] Separate Hexagon subreg indices for different register classes 2016-11-09 16:19:08 +00:00
HexagonBitTracker.h Hexagon: Avoid implicit iterator conversions, NFC 2016-07-12 01:55:32 +00:00
HexagonBlockRanges.cpp Use __func__ directly now that all supported compilers support it 2016-10-20 00:22:23 +00:00
HexagonBlockRanges.h [Hexagon] Handle block live-ins with lane masks in HexagonBlockRanges 2016-10-18 19:47:20 +00:00
HexagonBranchRelaxation.cpp Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
HexagonCallingConv.td
HexagonCFGOptimizer.cpp Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
HexagonCommonGEP.cpp Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
HexagonConstPropagation.cpp [Hexagon] Separate Hexagon subreg indices for different register classes 2016-11-09 16:19:08 +00:00
HexagonCopyToCombine.cpp [Hexagon] Silence "sometimes uninitialized" warning in HexagonCopyToCombine 2016-11-09 17:50:46 +00:00
HexagonEarlyIfConv.cpp Use MachineInstr::mop_iterator instead of MIOperands; NFC 2016-10-24 21:36:43 +00:00
HexagonExpandCondsets.cpp Fix spelling mistakes in Hexagon target comments. NFC. 2016-11-17 19:21:20 +00:00
HexagonFixupHwLoops.cpp Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
HexagonFrameLowering.cpp [Hexagon] Separate Hexagon subreg indices for different register classes 2016-11-09 16:19:08 +00:00
HexagonFrameLowering.h [Hexagon] Check for offset overflow when reserving scavenging slots 2016-08-01 17:15:30 +00:00
HexagonGenExtract.cpp Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
HexagonGenInsert.cpp Timer: Track name and description. 2016-11-18 19:43:18 +00:00
HexagonGenMux.cpp Use MachineInstr::mop_iterator instead of MIOperands; NFC 2016-10-24 21:36:43 +00:00
HexagonGenPredicate.cpp [Hexagon] Separate Hexagon subreg indices for different register classes 2016-11-09 16:19:08 +00:00
HexagonHardwareLoops.cpp Fix spelling mistakes in Hexagon target comments. NFC. 2016-11-17 19:21:20 +00:00
HexagonHazardRecognizer.cpp Use MachineInstr::mop_iterator instead of MIOperands; NFC 2016-10-24 21:36:43 +00:00
HexagonHazardRecognizer.h Fix license information in the file header 2016-07-29 14:04:17 +00:00
HexagonInstrAlias.td [Hexagon] Rename operand/predicate names for unshifted integers 2016-11-01 19:02:10 +00:00
HexagonInstrEnc.td
HexagonInstrFormats.td Fix spelling mistakes in Hexagon target comments. NFC. 2016-11-17 19:21:20 +00:00
HexagonInstrFormatsV4.td [Hexagon][NFC] Using documented instruction type name V4LDST instead of MEMOP. 2016-10-07 19:11:28 +00:00
HexagonInstrFormatsV60.td Fix spelling mistakes in Hexagon target comments. NFC. 2016-11-17 19:21:20 +00:00
HexagonInstrInfo.cpp Fix spelling mistakes in Hexagon target comments. NFC. 2016-11-17 19:21:20 +00:00
HexagonInstrInfo.h Finish renaming remaining analyzeBranch functions 2016-09-14 20:43:16 +00:00
HexagonInstrInfo.td Fix spelling mistakes in Hexagon target comments. NFC. 2016-11-17 19:21:20 +00:00
HexagonInstrInfoV3.td [Hexagon] Split all selection patterns into a separate file 2016-11-05 15:01:38 +00:00
HexagonInstrInfoV4.td [Hexagon] Eliminate Insert4 pseudo-instruction, use combines instead 2016-11-09 14:16:29 +00:00
HexagonInstrInfoV5.td [Hexagon] Split all selection patterns into a separate file 2016-11-05 15:01:38 +00:00
HexagonInstrInfoV60.td [Hexagon] Split all selection patterns into a separate file 2016-11-05 15:01:38 +00:00
HexagonInstrInfoVector.td [Hexagon] Split all selection patterns into a separate file 2016-11-05 15:01:38 +00:00
HexagonIntrinsics.td [Hexagon] Round 4 of selection pattern simplifications 2016-11-06 18:09:56 +00:00
HexagonIntrinsicsDerived.td [Hexagon] Separate Hexagon subreg indices for different register classes 2016-11-09 16:19:08 +00:00
HexagonIntrinsicsV3.td
HexagonIntrinsicsV4.td [Hexagon] Rename operand/predicate names for unshifted integers 2016-11-01 19:02:10 +00:00
HexagonIntrinsicsV5.td
HexagonIntrinsicsV60.td [Hexagon] Separate Hexagon subreg indices for different register classes 2016-11-09 16:19:08 +00:00
HexagonISelDAGToDAG.cpp [Hexagon] Give a predicate function a more meaningful name 2016-11-14 20:53:09 +00:00
HexagonISelLowering.cpp [Hexagon] Separate Hexagon subreg indices for different register classes 2016-11-09 16:19:08 +00:00
HexagonISelLowering.h [Hexagon] Relocate pattern-related bits to proper places 2016-11-05 21:44:50 +00:00
HexagonIsetDx.td [Hexagon] Rename operand/predicate names for unshifted integers 2016-11-01 19:02:10 +00:00
HexagonMachineFunctionInfo.cpp
HexagonMachineFunctionInfo.h [Hexagon] Do not cache alloca instructions during isel 2016-08-19 18:46:13 +00:00
HexagonMachineScheduler.cpp Move helpers into anonymous namespaces. NFC. 2016-08-06 11:13:10 +00:00
HexagonMachineScheduler.h Use the range variant of find instead of unpacking begin/end 2016-08-11 22:21:41 +00:00
HexagonMCInstLower.cpp
HexagonNewValueJump.cpp Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
HexagonOperands.td [Hexagon] Round 3 of selection pattern simplifications 2016-11-06 18:05:14 +00:00
HexagonOptAddrMode.cpp [RDF] Switch RefMap in liveness calculation to use lane masks 2016-10-19 16:30:56 +00:00
HexagonOptimizeSZextends.cpp Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
HexagonPatterns.td [Hexagon] Give a predicate function a more meaningful name 2016-11-14 20:53:09 +00:00
HexagonPeephole.cpp [Hexagon] Separate Hexagon subreg indices for different register classes 2016-11-09 16:19:08 +00:00
HexagonRDFOpt.cpp [Hexagon] Separate Hexagon subreg indices for different register classes 2016-11-09 16:19:08 +00:00
HexagonRegisterInfo.cpp [Hexagon] Separate Hexagon subreg indices for different register classes 2016-11-09 16:19:08 +00:00
HexagonRegisterInfo.h [Hexagon] Separate Hexagon subreg indices for different register classes 2016-11-09 16:19:08 +00:00
HexagonRegisterInfo.td [Hexagon] Separate Hexagon subreg indices for different register classes 2016-11-09 16:19:08 +00:00
HexagonSchedule.td
HexagonScheduleV4.td [Hexagon] Update instruction itineraries 2016-07-15 16:58:34 +00:00
HexagonScheduleV55.td [Hexagon] Update instruction itineraries 2016-07-15 16:58:34 +00:00
HexagonScheduleV60.td [Hexagon] Update instruction itineraries 2016-07-15 16:58:34 +00:00
HexagonSelectionDAGInfo.cpp [Hexagon] Add target feature to generate long calls 2016-07-25 14:42:11 +00:00
HexagonSelectionDAGInfo.h [Hexagon] Add explicit default constructor for HexagonSelectionDAGInfo 2016-08-19 15:13:54 +00:00
HexagonSplitConst32AndConst64.cpp [Hexagon] Separate Hexagon subreg indices for different register classes 2016-11-09 16:19:08 +00:00
HexagonSplitDouble.cpp [Hexagon] Separate Hexagon subreg indices for different register classes 2016-11-09 16:19:08 +00:00
HexagonStoreWidening.cpp Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
HexagonSubtarget.cpp [Hexagon] segv while processing SUnit with nullNodePtr 2016-09-17 16:21:09 +00:00
HexagonSubtarget.h [Hexagon] Referencify MachineInstr in HexagonInstrInfo, NFC 2016-07-29 21:49:42 +00:00
HexagonSystemInst.td [Hexagon] Rename operand/predicate names for unshifted integers 2016-11-01 19:02:10 +00:00
HexagonTargetMachine.cpp Move the global variables representing each Target behind accessor function 2016-10-09 23:00:34 +00:00
HexagonTargetMachine.h
HexagonTargetObjectFile.cpp Target: Change various section classifiers in TargetLoweringObjectFile to take a GlobalObject. 2016-10-24 19:23:39 +00:00
HexagonTargetObjectFile.h Target: Change various section classifiers in TargetLoweringObjectFile to take a GlobalObject. 2016-10-24 19:23:39 +00:00
HexagonTargetStreamer.h
HexagonTargetTransformInfo.cpp [Hexagon] Consider zext/sext of a load to i32 to be free 2016-08-19 14:22:07 +00:00
HexagonTargetTransformInfo.h Do a sweep over move ctors and remove those that are identical to the default. 2016-10-20 12:20:28 +00:00
HexagonVectorPrint.cpp Fix Clang-tidy readability-redundant-string-cstr warnings 2016-11-02 16:43:50 +00:00
HexagonVLIWPacketizer.cpp Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
HexagonVLIWPacketizer.h [Hexagon] Referencify MachineInstr in HexagonInstrInfo, NFC 2016-07-29 21:49:42 +00:00
LLVMBuild.txt [Hexagon] Make HexagonCodeGen depend on Scalar 2016-07-22 17:23:46 +00:00
RDFCopy.cpp [RDF] Switch RegisterRef to be a pair (Register, LaneMask) 2016-10-14 17:57:55 +00:00
RDFCopy.h [RDF] Switch RegisterRef to be a pair (Register, LaneMask) 2016-10-14 17:57:55 +00:00
RDFDeadCode.cpp
RDFDeadCode.h
RDFGraph.cpp Timer: Track name and description. 2016-11-18 19:43:18 +00:00
RDFGraph.h Timer: Track name and description. 2016-11-18 19:43:18 +00:00
RDFLiveness.cpp Use __func__ directly now that all supported compilers support it 2016-10-20 00:22:23 +00:00
RDFLiveness.h [RDF] Use RegisterId typedef more consistently, NFC 2016-10-21 19:12:13 +00:00