llvm-project/llvm/lib/Target/Mips
Simon Dardis 03c2c65b2d [mips] Fix analyzeBranch to handle debug data
In the case where there was a conditional branch followed by a unconditional
branch with debug instruction separating them, MipsInstrInfo::analyzeBranch
would not skip past debug instruction when searching for the second branch
which give erroneous results about the control flow of the block.

This could lead to the branch folder to merge the non-fall through case
into it's predecessor, leaving the conditional branch with a dangling
basic block operand.

This resolves PR34975.

Thanks to Alexander Richardson for reporting the issue!

Reviewers: atanasyan

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

llvm-svn: 316084
2017-10-18 14:35:29 +00:00
..
AsmParser [Asm] Add debug tracing in table-generated assembly matcher 2017-10-11 09:17:43 +00:00
Disassembler [mips] Place certain 64 bit FPU instructions in their own decoder namespace 2017-10-05 10:27:37 +00:00
InstPrinter
MCTargetDesc Revert "TargetMachine: Merge TargetMachine and LLVMTargetMachine" 2017-10-12 22:57:28 +00:00
TargetInfo
CMakeLists.txt [mips][microMIPS] Adding code size reduction pass for MicroMIPS 2017-04-27 13:10:48 +00:00
LLVMBuild.txt
MSA.txt
MicroMips32r6InstrFormats.td
MicroMips32r6InstrInfo.td [mips] Place certain 64 bit FPU instructions in their own decoder namespace 2017-10-05 10:27:37 +00:00
MicroMips64r6InstrFormats.td
MicroMips64r6InstrInfo.td [mips] Implement the 'dext' aliases and it's disassembly alias. 2017-09-14 17:27:53 +00:00
MicroMipsDSPInstrFormats.td
MicroMipsDSPInstrInfo.td [mips] Enable spilling and reloading of the dsp register set. 2017-10-03 13:45:49 +00:00
MicroMipsInstrFPU.td [mips][micromips] Fix (dis)assembly of bc1(t|f) 2017-10-16 14:20:22 +00:00
MicroMipsInstrFormats.td [mips][micromips] Fix (dis)assembly of bc1(t|f) 2017-10-16 14:20:22 +00:00
MicroMipsInstrInfo.td [mips] Provide alternate predicates for constant synthesis 2017-10-16 13:18:21 +00:00
MicroMipsSizeReduction.cpp [mips][microMIPS] Extending size reduction pass with XOR16 2017-08-10 10:27:29 +00:00
Mips.h [LegacyPassManager] Remove TargetMachine constructors 2017-05-18 17:21:13 +00:00
Mips.td [mips] Handle the `long-calls` feature flags in the MIPS backend 2017-07-15 07:14:25 +00:00
Mips16FrameLowering.cpp Remove unused variables 2017-10-15 05:35:02 +00:00
Mips16FrameLowering.h Add "Restored" flag to CalleeSavedInfo 2017-08-10 16:17:32 +00:00
Mips16HardFloat.cpp [Mips] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-08-03 22:12:30 +00:00
Mips16HardFloatInfo.cpp
Mips16HardFloatInfo.h
Mips16ISelDAGToDAG.cpp
Mips16ISelDAGToDAG.h
Mips16ISelLowering.cpp
Mips16ISelLowering.h
Mips16InstrFormats.td
Mips16InstrInfo.cpp Teach TargetInstrInfo::getInlineAsmLength to parse .space directives with integer arguments 2017-09-28 09:31:46 +00:00
Mips16InstrInfo.h Teach TargetInstrInfo::getInlineAsmLength to parse .space directives with integer arguments 2017-09-28 09:31:46 +00:00
Mips16InstrInfo.td [mips] Correct mips16 return instructions definitions 2017-02-14 21:53:23 +00:00
Mips16RegisterInfo.cpp
Mips16RegisterInfo.h
Mips32r6InstrFormats.td
Mips32r6InstrInfo.td [mips][microMIPS] add lapc instruction 2017-09-11 18:34:04 +00:00
Mips64InstrInfo.td [mips] Implement the 'dext' aliases and it's disassembly alias. 2017-09-14 17:27:53 +00:00
Mips64r6InstrInfo.td
MipsAnalyzeImmediate.cpp [Mips] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-08-03 22:12:30 +00:00
MipsAnalyzeImmediate.h [Mips] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-08-03 22:12:30 +00:00
MipsAsmPrinter.cpp Untabify. 2017-10-18 13:31:28 +00:00
MipsAsmPrinter.h [Mips] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-08-03 22:12:30 +00:00
MipsCCState.cpp Reland "[SelectionDAG] Enable target specific vector scalarization of calls and returns" 2017-06-09 14:37:08 +00:00
MipsCCState.h Reland "[SelectionDAG] Enable target specific vector scalarization of calls and returns" 2017-06-09 14:37:08 +00:00
MipsCallingConv.td Reland "[SelectionDAG] Enable target specific vector scalarization of calls and returns" 2017-06-09 14:37:08 +00:00
MipsCondMov.td [mips] Place certain 64 bit FPU instructions in their own decoder namespace 2017-10-05 10:27:37 +00:00
MipsConstantIslandPass.cpp Reverting r315590; it did not include changes for llvm-tblgen, which is causing link errors for several people. 2017-10-15 14:32:27 +00:00
MipsDSPInstrFormats.td
MipsDSPInstrInfo.td [mips] Enable spilling and reloading of the dsp register set. 2017-10-03 13:45:49 +00:00
MipsDelaySlotFiller.cpp [Mips] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-08-03 22:12:30 +00:00
MipsEVAInstrFormats.td
MipsEVAInstrInfo.td
MipsFastISel.cpp [Mips] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-08-03 22:12:30 +00:00
MipsFrameLowering.cpp Move size and alignment information of regclass to TargetRegisterInfo 2017-04-24 18:55:33 +00:00
MipsFrameLowering.h
MipsHazardSchedule.cpp [Mips] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-08-03 22:12:30 +00:00
MipsISelDAGToDAG.cpp
MipsISelDAGToDAG.h
MipsISelLowering.cpp Remove unused variables 2017-10-15 05:35:02 +00:00
MipsISelLowering.h [mips] Reordering callseq* nodes to be linear 2017-09-29 11:05:02 +00:00
MipsInstrFPU.td [mips][micromips] Fix (dis)assembly of bc1(t|f) 2017-10-16 14:20:22 +00:00
MipsInstrFormats.td [mips] Correct c.cond.fmt instruction definition. 2017-01-16 13:55:58 +00:00
MipsInstrInfo.cpp [mips] Fix analyzeBranch to handle debug data 2017-10-18 14:35:29 +00:00
MipsInstrInfo.h [mips] Add support for parsing target specific flags for MIR 2017-10-11 11:11:35 +00:00
MipsInstrInfo.td [mips] Provide alternate predicates for constant synthesis 2017-10-16 13:18:21 +00:00
MipsLongBranch.cpp [Mips] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-08-03 22:12:30 +00:00
MipsMCInstLower.cpp [Mips] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-08-03 22:12:30 +00:00
MipsMCInstLower.h [Mips] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-08-03 22:12:30 +00:00
MipsMSAInstrFormats.td
MipsMSAInstrInfo.td [mips][msa] Mask vectors holding shift amounts 2017-04-20 13:26:46 +00:00
MipsMTInstrFormats.td Revert "Reland "[mips][mt][6/7] Add support for mftr, mttr instructions."" 2017-08-14 16:20:33 +00:00
MipsMTInstrInfo.td Revert "Reland "[mips][mt][6/7] Add support for mftr, mttr instructions."" 2017-08-14 16:20:33 +00:00
MipsMachineFunction.cpp evert "[mips] Fix test mips64fpldst.ll with machine verifier enabled" 2017-06-07 11:21:37 +00:00
MipsMachineFunction.h [Mips] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-01-30 23:21:32 +00:00
MipsModuleISelDAGToDAG.cpp [LegacyPassManager] Remove TargetMachine constructors 2017-05-18 17:21:13 +00:00
MipsOptimizePICCall.cpp [Mips] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-08-03 22:12:30 +00:00
MipsOptionRecord.h [Mips] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-02-01 01:22:51 +00:00
MipsOs16.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
MipsRegisterInfo.cpp [Mips] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-08-03 22:12:30 +00:00
MipsRegisterInfo.h [Mips] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-08-03 22:12:30 +00:00
MipsRegisterInfo.td [mips] Expansion of LI.S and LI.D 2017-05-30 09:33:43 +00:00
MipsSEFrameLowering.cpp Remove unused variables 2017-10-15 05:35:02 +00:00
MipsSEFrameLowering.h [Mips] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-08-03 22:12:30 +00:00
MipsSEISelDAGToDAG.cpp [mips] Pick the right variant of DINS upfront and enable target instruction verification 2017-09-14 10:58:00 +00:00
MipsSEISelDAGToDAG.h Reland "[mips] Fix multiprecision arithmetic." 2017-07-13 11:28:05 +00:00
MipsSEISelLowering.cpp [Mips] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-08-03 22:12:30 +00:00
MipsSEISelLowering.h [Mips] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-08-03 22:12:30 +00:00
MipsSEInstrInfo.cpp [mips] Enable spilling and reloading of the dsp register set. 2017-10-03 13:45:49 +00:00
MipsSEInstrInfo.h
MipsSERegisterInfo.cpp
MipsSERegisterInfo.h
MipsSchedule.td Revert "Reland "[mips][mt][6/7] Add support for mftr, mttr instructions."" 2017-08-14 16:20:33 +00:00
MipsScheduleGeneric.td Revert "Reland "[mips][mt][6/7] Add support for mftr, mttr instructions."" 2017-08-14 16:20:33 +00:00
MipsScheduleP5600.td [mips][mt][3/7] Add IAS support for emt, dmt instructions. 2017-07-12 11:57:44 +00:00
MipsSubtarget.cpp [MIPS] Implement support for -mstack-alignment. 2017-08-14 21:49:38 +00:00
MipsSubtarget.h [MIPS] Implement support for -mstack-alignment. 2017-08-14 21:49:38 +00:00
MipsTargetMachine.cpp Revert "TargetMachine: Merge TargetMachine and LLVMTargetMachine" 2017-10-12 22:57:28 +00:00
MipsTargetMachine.h Revert "TargetMachine: Merge TargetMachine and LLVMTargetMachine" 2017-10-12 22:57:28 +00:00
MipsTargetObjectFile.cpp [mips] Handle variables with an explicit section and interactions with .sdata, .sbss 2017-08-16 12:18:04 +00:00
MipsTargetObjectFile.h [mips] Fix debug information for __thread variable 2017-01-20 17:53:30 +00:00
MipsTargetStreamer.h [mips] implement .set dspr2 directive 2017-10-05 17:40:32 +00:00
Relocation.txt [Mips] Document Mips Backend Relocation Principles 2017-04-21 14:49:27 +00:00