1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 20:23:11 +01:00
llvm-mirror/lib/Target/Hexagon
Krzysztof Parzyszek 96a41fe994 [Hexagon] Fix assert with packetizing IMPLICIT_DEF instructions
The compiler is generating packet with the following instructions,
which causes an undefined register assert in the verifier.

  $r0 = IMPLICIT_DEF
  $r1 = IMPLICIT_DEF
  S2_storerd_io killed $r29, 0, killed %d0

The problem is that the packetizer is not saving the IMPLICIT_DEF
instructions, which are needed when checking if it is legal to
add the store instruction. The fix is to add the IMPLICIT_DEF
instructions to the CurrentPacketMIs structure.

Patch by Brendon Cahoon.

llvm-svn: 329439
2018-04-06 18:19:22 +00:00
..
AsmParser [Hexagon] Recognize and handle :endloop01 2018-03-30 15:29:47 +00:00
Disassembler [Hexagon] Add guest registers 2018-03-01 17:03:26 +00:00
MCTargetDesc [Hexagon] Remove -mhvx-double and the corresponding subtarget feature 2018-04-03 16:06:36 +00:00
TargetInfo Add backend name to Target to enable runtime info to be fed back into TableGen 2017-11-15 23:55:44 +00:00
BitTracker.cpp [Hexagon] Memoize instruction positions in BitTracker 2018-02-05 17:12:07 +00:00
BitTracker.h [Hexagon] Memoize instruction positions in BitTracker 2018-02-05 17:12:07 +00:00
CMakeLists.txt Sort targetgen calls in lib/Target/*/CMakeLists. 2018-04-04 12:37:44 +00:00
Hexagon.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
Hexagon.td [Hexagon] Remove -mhvx-double and the corresponding subtarget feature 2018-04-03 16:06:36 +00:00
HexagonAsmPrinter.cpp [Hexagon] Clean up some code in HexagonAsmPrinter, NFC 2018-04-02 15:06:55 +00:00
HexagonAsmPrinter.h [Hexagon] Clean up some code in HexagonAsmPrinter, NFC 2018-04-02 15:06:55 +00:00
HexagonBitSimplify.cpp [Hexagon] Fix alignment calculation of stack objects in Hexagon bit tracker 2018-02-20 14:29:43 +00:00
HexagonBitTracker.cpp [Hexagon] Fix alignment calculation of stack objects in Hexagon bit tracker 2018-02-20 14:29:43 +00:00
HexagonBitTracker.h [Hexagon] Better determination of register classes in bit tracker 2017-09-25 19:12:55 +00:00
HexagonBlockRanges.cpp [Hexagon] Change std::sort to llvm::sort in response to r327219 2018-03-24 17:34:37 +00:00
HexagonBlockRanges.h [Hexagon] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-09-28 22:27:31 +00:00
HexagonBranchRelaxation.cpp [Hexagon] Assume all extendable branches to be of size 8 in relaxation 2018-03-23 19:47:13 +00:00
HexagonCallingConv.td [Hexagon] Express calling conventions via .td file instead of hand-coding 2018-02-09 15:30:02 +00:00
HexagonCFGOptimizer.cpp MachineFunction: Return reference from getFunction(); NFC 2017-12-15 22:22:58 +00:00
HexagonCommonGEP.cpp Fix a couple of layering violations in Transforms 2018-03-21 22:34:23 +00:00
HexagonConstExtenders.cpp [Hexagon] Change std::sort to llvm::sort in response to r327219 2018-03-24 17:34:37 +00:00
HexagonConstPropagation.cpp [Hexagon] Recognize non-immediate constants in HexagonConstPropagation 2018-02-23 20:33:26 +00:00
HexagonCopyToCombine.cpp MachineFunction: Return reference from getFunction(); NFC 2017-12-15 22:22:58 +00:00
HexagonDepArch.h [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonDepArch.td [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonDepIICHVX.td [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonDepIICScalar.td [Hexagon] Remove unused scheduling classes 2018-03-30 14:34:32 +00:00
HexagonDepInstrFormats.td [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonDepInstrInfo.td [Hexagon] Add trap1 instruction 2018-03-01 21:54:08 +00:00
HexagonDepITypes.h [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonDepITypes.td [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonDepMappings.td [Hexagon] Add trap1 instruction 2018-03-01 21:54:08 +00:00
HexagonDepOperands.td [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonDepTimingClasses.h [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonEarlyIfConv.cpp [Hexagon] Avoid early if-conversion for one sided branches 2018-03-23 18:00:18 +00:00
HexagonExpandCondsets.cpp [Hexagon] Incorrectly removing dead flag and adding kill flag 2018-03-23 19:39:37 +00:00
HexagonFixupHwLoops.cpp [Hexagon] Correct update of instruction offet in HW loop fixup 2018-03-23 20:41:44 +00:00
HexagonFrameLowering.cpp [Hexagon] Add support for "new" circular buffer intrinsics 2018-03-28 19:38:29 +00:00
HexagonFrameLowering.h Move TargetFrameLowering.h to CodeGen where it's implemented 2017-11-03 22:32:11 +00:00
HexagonGatherPacketize.cpp Rename LiveIntervalAnalysis.h to LiveIntervals.h 2017-12-13 02:51:04 +00:00
HexagonGenExtract.cpp [Hexagon] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-09-28 22:27:31 +00:00
HexagonGenInsert.cpp [Hexagon] Change std::sort to llvm::sort in response to r327219 2018-03-24 17:34:37 +00:00
HexagonGenMux.cpp [Hexagon] Always generate mux out of predicated transfers if possible 2018-03-23 18:43:09 +00:00
HexagonGenPredicate.cpp MachineFunction: Return reference from getFunction(); NFC 2017-12-15 22:22:58 +00:00
HexagonHardwareLoops.cpp [Hexagon] Handle subregisters when calculating iteration count in HW loops 2018-04-06 17:51:57 +00:00
HexagonHazardRecognizer.cpp [Hexagon] Improve scheduling heuristic for large basic blocks 2018-03-20 14:54:01 +00:00
HexagonHazardRecognizer.h [Hexagon] Improve scheduling heuristic for large basic blocks 2018-03-20 14:54:01 +00:00
HexagonIICHVX.td [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonIICScalar.td [Hexagon] Use automatically-generated scheduling information for HVX 2017-05-03 20:10:36 +00:00
HexagonInstrFormats.td [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonInstrFormatsV4.td [Hexagon] Use automatically-generated scheduling information for HVX 2017-05-03 20:10:36 +00:00
HexagonInstrFormatsV60.td [Hexagon] Use automatically-generated scheduling information for HVX 2017-05-03 20:10:36 +00:00
HexagonInstrFormatsV65.td [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonInstrInfo.cpp [Hexagon] Remove default values from lambda parameters 2018-04-05 14:25:52 +00:00
HexagonInstrInfo.h [IR][CodeGen] Remove dependency on EVT from IR/Function.cpp. Move EVT to CodeGen layer. 2018-03-29 17:21:10 +00:00
HexagonIntrinsics.td [Hexagon] Add support to handle bit-reverse load intrinsics 2018-03-29 13:52:46 +00:00
HexagonIntrinsicsV3.td
HexagonIntrinsicsV4.td
HexagonIntrinsicsV5.td
HexagonIntrinsicsV60.td [Hexagon] Remove vectors of i64 from valid HVX types 2017-12-14 18:35:24 +00:00
HexagonISelDAGToDAG.cpp [Hexagon] Pass pointer to SelectionDAG to dump functions 2018-03-30 14:29:15 +00:00
HexagonISelDAGToDAG.h [Hexagon] Add support to handle bit-reverse load intrinsics 2018-03-29 13:52:46 +00:00
HexagonISelDAGToDAGHVX.cpp Fix a bunch of typoes. NFC 2018-03-30 22:22:31 +00:00
HexagonISelLowering.cpp Fix a bunch of typoes. NFC 2018-03-30 22:22:31 +00:00
HexagonISelLowering.h [IR][CodeGen] Remove dependency on EVT from IR/Function.cpp. Move EVT to CodeGen layer. 2018-03-29 17:21:10 +00:00
HexagonISelLoweringHVX.cpp [Hexagon] Rewrite non-HVX unaligned loads as pairs of aligned ones 2018-03-07 17:27:18 +00:00
HexagonLoopIdiomRecognition.cpp Transforms: Introduce Transforms/Utils.h rather than spreading the declarations amongst Scalar.h and IPO.h 2018-03-28 17:44:36 +00:00
HexagonMachineFunctionInfo.cpp
HexagonMachineFunctionInfo.h
HexagonMachineScheduler.cpp [Hexagon] Add heuristic to exclude critical path cost for scheduling 2018-03-20 19:26:27 +00:00
HexagonMachineScheduler.h [Hexagon] Add heuristic to exclude critical path cost for scheduling 2018-03-20 19:26:27 +00:00
HexagonMapAsm2IntrinV62.gen.td [Hexagon] Switch to parameterized register classes for HVX 2017-09-15 15:46:05 +00:00
HexagonMapAsm2IntrinV65.gen.td [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonMCInstLower.cpp [Hexagon] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-08-01 21:20:10 +00:00
HexagonNewValueJump.cpp Fix a bunch of typoes. NFC 2018-03-30 22:22:31 +00:00
HexagonOperands.td [Hexagon] Reorganize and update instruction patterns 2017-10-20 19:33:12 +00:00
HexagonOptAddrMode.cpp [Hexagon] Silence unused variable warning in Release builds 2018-03-23 19:39:16 +00:00
HexagonOptimizeSZextends.cpp
HexagonPatterns.td [Hexagon] Fix zero-extending non-HVX bool vectors 2018-03-16 15:03:37 +00:00
HexagonPatternsHVX.td [Hexagon] Rewrite non-HVX unaligned loads as pairs of aligned ones 2018-03-07 17:27:18 +00:00
HexagonPatternsV65.td [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonPeephole.cpp MachineFunction: Return reference from getFunction(); NFC 2017-12-15 22:22:58 +00:00
HexagonPseudo.td [Hexagon] Recognize and handle :endloop01 2018-03-30 15:29:47 +00:00
HexagonRDFOpt.cpp MachineFunction: Return reference from getFunction(); NFC 2017-12-15 22:22:58 +00:00
HexagonRegisterInfo.cpp [Hexagon] Add guest registers 2018-03-01 17:03:26 +00:00
HexagonRegisterInfo.h [Hexagon] Add TargetRegisterInfo::getPointerRegClass() override 2018-02-21 22:27:07 +00:00
HexagonRegisterInfo.td [Hexagon] Remove -mhvx-double and the corresponding subtarget feature 2018-04-03 16:06:36 +00:00
HexagonSchedule.td [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonScheduleV4.td [Hexagon] Use automatically-generated scheduling information for HVX 2017-05-03 20:10:36 +00:00
HexagonScheduleV55.td [Hexagon] Use automatically-generated scheduling information for HVX 2017-05-03 20:10:36 +00:00
HexagonScheduleV60.td [Hexagon] Use automatically-generated scheduling information for HVX 2017-05-03 20:10:36 +00:00
HexagonScheduleV62.td [Hexagon] Use automatically-generated scheduling information for HVX 2017-05-03 20:10:36 +00:00
HexagonScheduleV65.td [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonSelectionDAGInfo.cpp
HexagonSelectionDAGInfo.h
HexagonSplitConst32AndConst64.cpp Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
HexagonSplitDouble.cpp [Hexagon] Boost profit for word-mask immediates, reduce for others 2018-03-23 20:11:00 +00:00
HexagonStoreWidening.cpp [Hexagon] Change std::sort to llvm::sort in response to r327219 2018-03-24 17:34:37 +00:00
HexagonSubtarget.cpp [Hexagon] Assertion failure in HexagonSubtarget.cpp 2018-03-26 19:04:58 +00:00
HexagonSubtarget.h [Hexagon] Subtarget feature to emit one instruction per packet 2018-03-12 17:47:46 +00:00
HexagonTargetMachine.cpp [Hexagon] Recognize non-immediate constants in HexagonConstPropagation 2018-02-23 20:33:26 +00:00
HexagonTargetMachine.h (Re-landing) Expose a TargetMachine::getTargetTransformInfo function 2017-12-22 18:21:59 +00:00
HexagonTargetObjectFile.cpp [Hexagon] Emit lookup tables in text section based on a flag 2017-07-18 15:31:37 +00:00
HexagonTargetObjectFile.h [Hexagon] Emit lookup tables in text section based on a flag 2017-07-18 15:31:37 +00:00
HexagonTargetStreamer.h
HexagonTargetTransformInfo.cpp [Hexagon] peel loops with runtime small trip counts 2018-04-03 22:55:09 +00:00
HexagonTargetTransformInfo.h [Hexagon] Implement TTI::shouldMaximizeVectorBandwidth 2018-03-27 18:10:47 +00:00
HexagonVectorLoopCarriedReuse.cpp Transforms: Introduce Transforms/Utils.h rather than spreading the declarations amongst Scalar.h and IPO.h 2018-03-28 17:44:36 +00:00
HexagonVectorPrint.cpp Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
HexagonVExtract.cpp Inline variable only used within assert. 2018-01-26 21:55:13 +00:00
HexagonVLIWPacketizer.cpp [Hexagon] Fix assert with packetizing IMPLICIT_DEF instructions 2018-04-06 18:19:22 +00:00
HexagonVLIWPacketizer.h [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
LLVMBuild.txt
RDFCopy.cpp [MachineOperand][Target] MachineOperand::isRenamable semantics changes 2018-02-23 18:25:08 +00:00
RDFCopy.h [Hexagon] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-08-01 21:20:10 +00:00
RDFDeadCode.cpp [Hexagon] Change std::sort to llvm::sort in response to r327219 2018-03-24 17:34:37 +00:00
RDFDeadCode.h
RDFGraph.cpp [Hexagon] Change std::sort to llvm::sort in response to r327219 2018-03-24 17:34:37 +00:00
RDFGraph.h [CodeGen] Use MachineOperand::print in the MIRPrinter for MO_Register. 2017-12-07 10:40:31 +00:00
RDFLiveness.cpp [Hexagon] Change std::sort to llvm::sort in response to r327219 2018-03-24 17:34:37 +00:00
RDFLiveness.h [Hexagon] fix 'must explicitly initialize the const member' error which clang 3.8 emits 2018-03-12 14:40:48 +00:00
RDFRegisters.cpp [CodeGen] Rename functions PrintReg* to printReg* 2017-11-28 12:42:37 +00:00
RDFRegisters.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00