llvm-6502/lib/Target/Mips
Tim Northover 3e84ad28d4 ISelDAG: spot chain cycles involving MachineNodes
Previously, the DAGISel function WalkChainUsers was spotting that it
had entered already-selected territory by whether a node was a
MachineNode (amongst other things). Since it's fairly common practice
to insert MachineNodes during ISelLowering, this was not the correct
check.

Looking around, it seems that other nodes get their NodeId set to -1
upon selection, so this makes sure the same thing happens to all
MachineNodes and uses that characteristic to determine whether we
should stop looking for a loop during selection.

This should fix PR15840.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191165 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-22 08:21:56 +00:00
..
AsmParser This patch implements Mips load/store instructions from/to coprocessor 2. Test cases are added. 2013-09-16 10:29:42 +00:00
Disassembler This patch adds support for microMIPS disassembler and disassembler make check tests. 2013-09-06 12:30:36 +00:00
InstPrinter [mips] Place parentheses around && to silence warning. 2013-09-07 00:26:26 +00:00
MCTargetDesc Generate compact unwind encoding from CFI directives. 2013-09-09 02:37:14 +00:00
TargetInfo
CMakeLists.txt Turn MipsOptimizeMathLibCalls into a target-independent scalar transform 2013-08-23 10:27:02 +00:00
LLVMBuild.txt
Makefile
MicroMipsInstrFormats.td Support for misc microMIPS instructions. 2013-09-14 06:49:25 +00:00
MicroMipsInstrInfo.td Support for microMIPS DIV instructions. 2013-09-14 07:15:21 +00:00
Mips16FrameLowering.cpp Add the saving of S2. This is needed for some of the floating point 2013-08-04 23:56:53 +00:00
Mips16FrameLowering.h
Mips16HardFloat.cpp Set .reorder for the stub so that gas takes care of delay slot processing. 2013-09-21 01:37:52 +00:00
Mips16HardFloat.h
Mips16InstrFormats.td Create a pattern for the "trap" instruction. 2013-08-07 04:00:26 +00:00
Mips16InstrInfo.cpp Remove unused stdio.h includes 2013-08-18 08:29:51 +00:00
Mips16InstrInfo.h Clean up code for Mips16 large frame handling. 2013-08-04 01:13:25 +00:00
Mips16InstrInfo.td Fix two issues regarding Got pointer (GP) setup. 2013-09-18 22:46:09 +00:00
Mips16ISelDAGToDAG.cpp Fix two issues regarding Got pointer (GP) setup. 2013-09-18 22:46:09 +00:00
Mips16ISelDAGToDAG.h
Mips16ISelLowering.cpp Add another intrinsic that LLVM gives an incorrect prototype to. 2013-08-09 21:33:41 +00:00
Mips16ISelLowering.h
Mips16RegisterInfo.cpp Clean up code for Mips16 large frame handling. 2013-08-04 01:13:25 +00:00
Mips16RegisterInfo.h
Mips64InstrInfo.td [mips] Add definition of instruction "drotr32" (double rotate right plus 32). 2013-09-07 00:18:01 +00:00
Mips.h Turn MipsOptimizeMathLibCalls into a target-independent scalar transform 2013-08-23 10:27:02 +00:00
Mips.td [Mips][msa] Added initial MSA support. 2013-08-13 20:54:07 +00:00
MipsAnalyzeImmediate.cpp
MipsAnalyzeImmediate.h
MipsAsmPrinter.cpp [mips] Rename register classes CPURegs and CPU64Regs. 2013-08-06 23:08:38 +00:00
MipsAsmPrinter.h
MipsCallingConv.td [mips] Add support for calling convention CC_MipsO32_FP64, which is used when the 2013-08-20 23:38:40 +00:00
MipsCodeEmitter.cpp [mips] Define "trap" as a pseudo instruction that turns into "break 0, 0". 2013-09-06 23:52:46 +00:00
MipsCondMov.td [mips] Set instruction itineraries of loads, stores and conditional moves. 2013-09-06 23:28:24 +00:00
MipsConstantIslandPass.cpp
MipsDelaySlotFiller.cpp
MipsDSPInstrFormats.td
MipsDSPInstrInfo.td [mips] Use uimm5 and uimm6 instead of shamt and imm, if the immediate has to fit 2013-09-07 00:02:02 +00:00
MipsFrameLowering.cpp
MipsFrameLowering.h
MipsInstrFormats.td Fixed bug when generating Load Upper Immediate microMIPS instruction. 2013-09-14 07:35:41 +00:00
MipsInstrFPU.td This patch implements Mips load/store instructions from/to coprocessor 2. Test cases are added. 2013-09-16 10:29:42 +00:00
MipsInstrInfo.cpp
MipsInstrInfo.h
MipsInstrInfo.td [mips] MUL should clobber HI0 and LO0. 2013-09-20 21:22:28 +00:00
MipsISelDAGToDAG.cpp ISelDAG: spot chain cycles involving MachineNodes 2013-09-22 08:21:56 +00:00
MipsISelDAGToDAG.h [mips][msa] Added load/store intrinsics. 2013-08-28 12:04:29 +00:00
MipsISelLowering.cpp Fix unused variables. 2013-09-10 23:18:14 +00:00
MipsISelLowering.h [mips] Enhance command line option "-mno-ldc1-sdc1" to expand base+index double 2013-09-07 00:52:30 +00:00
MipsJITInfo.cpp
MipsJITInfo.h
MipsLongBranch.cpp
MipsMachineFunction.cpp [mips] Rename register classes CPURegs and CPU64Regs. 2013-08-06 23:08:38 +00:00
MipsMachineFunction.h
MipsMCInstLower.cpp
MipsMCInstLower.h
MipsModuleISelDAGToDAG.cpp
MipsModuleISelDAGToDAG.h
MipsMSAInstrFormats.td [mips][msa] Added bnz.df, bnz.v, bz.df, and bz.v 2013-08-28 12:14:50 +00:00
MipsMSAInstrInfo.td [mips][msa] Added support for matching mulv, nlzc, sll, sra, srl, and subv from normal IR (i.e. not intrinsics) 2013-09-11 11:58:30 +00:00
MipsOs16.cpp Expand the mask capability for deciding which functions are mips16 and mips32 2013-09-15 02:09:08 +00:00
MipsOs16.h
MipsRegisterInfo.cpp [mips][msa] Added cfcmsa, and ctcmsa 2013-08-28 10:26:24 +00:00
MipsRegisterInfo.h [mips] Resolve register classes dynamically using ptr_rc to reduce the number of 2013-08-20 21:08:22 +00:00
MipsRegisterInfo.td This patch implements Mips load/store instructions from/to coprocessor 2. Test cases are added. 2013-09-16 10:29:42 +00:00
MipsRelocations.h
MipsSchedule.td
MipsSEFrameLowering.cpp [mips] Define register class FGRH32 for the high half of the 64-bit floating 2013-08-20 22:58:56 +00:00
MipsSEFrameLowering.h
MipsSEInstrInfo.cpp [mips] Enhance command line option "-mno-ldc1-sdc1" to expand base+index double 2013-09-07 00:52:30 +00:00
MipsSEInstrInfo.h [mips] Enhance command line option "-mno-ldc1-sdc1" to expand base+index double 2013-09-07 00:52:30 +00:00
MipsSEISelDAGToDAG.cpp Test commit to verify that commit access works. 2013-09-13 10:08:05 +00:00
MipsSEISelDAGToDAG.h [mips][msa] Added load/store intrinsics. 2013-08-28 12:04:29 +00:00
MipsSEISelLowering.cpp [mips][msa] Added support for matching mulv, nlzc, sll, sra, srl, and subv from normal IR (i.e. not intrinsics) 2013-09-11 11:58:30 +00:00
MipsSEISelLowering.h [mips][msa] Separate the configuration of int/float vector types since they will diverge soon 2013-09-11 10:15:48 +00:00
MipsSelectionDAGInfo.cpp
MipsSelectionDAGInfo.h
MipsSERegisterInfo.cpp [mips] Rename register classes CPURegs and CPU64Regs. 2013-08-06 23:08:38 +00:00
MipsSERegisterInfo.h
MipsSubtarget.cpp Fix a problem with dual mips16/mips32 mode. When the underlying processor 2013-08-30 19:40:56 +00:00
MipsSubtarget.h Fix a problem with dual mips16/mips32 mode. When the underlying processor 2013-08-30 19:40:56 +00:00
MipsTargetMachine.cpp Turn MipsOptimizeMathLibCalls into a target-independent scalar transform 2013-08-23 10:27:02 +00:00
MipsTargetMachine.h
MipsTargetObjectFile.cpp
MipsTargetObjectFile.h