llvm-project/llvm/lib/Target/Hexagon
Sjoerd Meijer 58156715b4 MachineLoop: add methods findLoopControlBlock and findLoopPreheader
This adds two new utility functions findLoopControlBlock and findLoopPreheader
to MachineLoop and MachineLoopInfo. These functions are refactored and taken
from the Hexagon target as they are target independent; thus this is intendend to
be a non-functional change.

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

llvm-svn: 278661
2016-08-15 08:22:42 +00:00
..
AsmParser Use the range variant of remove_if instead of unpacking begin/end 2016-08-12 04:32:37 +00:00
Disassembler [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
MCTargetDesc [Hexagon] Standardize pseudo-instructions for calls and returns 2016-08-12 11:12:02 +00:00
TargetInfo Remove autoconf support 2016-01-26 21:29:08 +00:00
BitTracker.cpp [Hexagon-ish] Add function to print cell map contents in bit tracker 2016-08-03 18:13:32 +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 [Hexagon] Delete HexagonSelectCCInfo.td 2016-08-10 16:23:53 +00:00
Hexagon.h [Hexagon] Improve lowering of instructions to the MC layer 2015-12-02 23:08:29 +00:00
Hexagon.td [Hexagon] Add target feature to generate long calls 2016-07-25 14:42:11 +00:00
HexagonAsmPrinter.cpp [Hexagon] Use integer instructions for floating point immediates 2016-08-10 16:46:36 +00:00
HexagonAsmPrinter.h [Hexagon] Preprocess mapped instructions before lowering to MC 2015-12-15 17:05:45 +00:00
HexagonBitSimplify.cpp Use the range variant of find_if instead of unpacking begin/end 2016-08-12 00:18:03 +00:00
HexagonBitTracker.cpp [Hexagon] Skip byval arguments when checking parameter attributes 2016-08-11 18:15:16 +00:00
HexagonBitTracker.h Hexagon: Avoid implicit iterator conversions, NFC 2016-07-12 01:55:32 +00:00
HexagonBlockRanges.cpp Use the range variant of find/find_if instead of unpacking begin/end 2016-08-12 03:55:06 +00:00
HexagonBlockRanges.h [hexagon] Move BlockRanges and RDF stuff into the llvm namespace. 2016-05-27 10:06:40 +00:00
HexagonBranchRelaxation.cpp [Hexagon] Referencify MachineInstr in HexagonInstrInfo, NFC 2016-07-29 21:49:42 +00:00
HexagonCFGOptimizer.cpp Hexagon: Avoid implicit iterator conversions, NFC 2016-07-12 01:55:32 +00:00
HexagonCallingConv.td
HexagonCommonGEP.cpp Use the range variant of remove_if instead of unpacking begin/end 2016-08-12 04:32:37 +00:00
HexagonConstPropagation.cpp [Hexagon] Use integer instructions for floating point immediates 2016-08-10 16:46:36 +00:00
HexagonCopyToCombine.cpp ADT: Remove all ilist_iterator => pointer casts, NFC 2016-08-12 05:05:36 +00:00
HexagonEarlyIfConv.cpp [Hexagon] Standardize "select" pseudo-instructions 2016-08-11 19:12:18 +00:00
HexagonExpandCondsets.cpp Use the range variant of remove_if instead of unpacking begin/end 2016-08-12 04:32:37 +00:00
HexagonFixupHwLoops.cpp [Hexagon] Referencify MachineInstr in HexagonInstrInfo, NFC 2016-07-29 21:49:42 +00:00
HexagonFrameLowering.cpp [Hexagon] Cleanup and standardize vector load/store pseudo instructions 2016-08-12 21:05:05 +00:00
HexagonFrameLowering.h [Hexagon] Check for offset overflow when reserving scavenging slots 2016-08-01 17:15:30 +00:00
HexagonGenExtract.cpp Add optimization bisect opt-in calls for Hexagon passes 2016-04-26 19:46:28 +00:00
HexagonGenInsert.cpp Use the range variant of remove_if instead of unpacking begin/end 2016-08-12 04:32:37 +00:00
HexagonGenMux.cpp Hexagon: Avoid implicit iterator conversions, NFC 2016-07-12 01:55:32 +00:00
HexagonGenPredicate.cpp Hexagon: Avoid implicit iterator conversions, NFC 2016-07-12 01:55:32 +00:00
HexagonHardwareLoops.cpp MachineLoop: add methods findLoopControlBlock and findLoopPreheader 2016-08-15 08:22:42 +00:00
HexagonHazardRecognizer.cpp [Hexagon] Referencify MachineInstr in HexagonInstrInfo, NFC 2016-07-29 21:49:42 +00:00
HexagonHazardRecognizer.h Fix license information in the file header 2016-07-29 14:04:17 +00:00
HexagonISelDAGToDAG.cpp [Hexagon] Use integer instructions for floating point immediates 2016-08-10 16:46:36 +00:00
HexagonISelLowering.cpp Fix unsupported relocation type R_HEX_6_X' for symbol .rodata 2016-08-13 23:41:11 +00:00
HexagonISelLowering.h [Hexagon] Standardize pseudo-instructions for calls and returns 2016-08-12 11:12:02 +00:00
HexagonInstrAlias.td [Hexagon] Treat all conditional branches as predicted (not-taken by default) 2016-05-09 18:22:07 +00:00
HexagonInstrEnc.td
HexagonInstrFormats.td [Hexagon] Update instruction itineraries 2016-07-15 16:58:34 +00:00
HexagonInstrFormatsV4.td [Hexagon] Update instruction itineraries 2016-07-15 16:58:34 +00:00
HexagonInstrFormatsV60.td [Hexagon] Update instruction formats 2015-11-23 14:09:26 +00:00
HexagonInstrInfo.cpp [Hexagon] Cleanup and standardize vector load/store pseudo instructions 2016-08-12 21:05:05 +00:00
HexagonInstrInfo.h [Hexagon] Allow non-returning calls in hardware loops 2016-08-11 21:14:25 +00:00
HexagonInstrInfo.td [Hexagon] Standardize pseudo-instructions for calls and returns 2016-08-12 11:12:02 +00:00
HexagonInstrInfoV3.td [Hexagon] Standardize pseudo-instructions for calls and returns 2016-08-12 11:12:02 +00:00
HexagonInstrInfoV4.td [Hexagon] Prefer _io over _rr for 64-bit store with constant offset 2016-08-02 18:50:05 +00:00
HexagonInstrInfoV5.td [Hexagon] Add extra patterns for single-precision min/max instructions 2016-08-10 17:56:24 +00:00
HexagonInstrInfoV60.td [Hexagon] Cleanup and standardize vector load/store pseudo instructions 2016-08-12 21:05:05 +00:00
HexagonInstrInfoVector.td [Hexagon] Equally-sized vectors are equivalent in ISel (except vNi1) 2016-06-27 15:08:22 +00:00
HexagonIntrinsics.td [Hexagon] Handle operand type differences for A2_tfrpi 2016-05-05 15:29:47 +00:00
HexagonIntrinsicsDerived.td
HexagonIntrinsicsV3.td
HexagonIntrinsicsV4.td [Hexagon] Use common Pat classes for selecting code for intrinsics 2016-04-22 18:05:55 +00:00
HexagonIntrinsicsV5.td [Hexagon] Use common Pat classes for selecting code for intrinsics 2016-04-22 18:05:55 +00:00
HexagonIntrinsicsV60.td [Hexagon] Use common Pat classes for selecting code for intrinsics 2016-04-22 18:05:55 +00:00
HexagonIsetDx.td
HexagonMCInstLower.cpp [Hexagon] Using MustExtend flag on expression instead of passing around bools. 2016-02-29 18:39:51 +00:00
HexagonMachineFunctionInfo.cpp
HexagonMachineFunctionInfo.h [Hexagon] Speed up frame lowering when no optimizations are enabled 2016-03-28 14:42:03 +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
HexagonNewValueJump.cpp Hexagon: Avoid implicit iterator conversions, NFC 2016-07-12 01:55:32 +00:00
HexagonOperands.td [Hexagon] Improve patterns with stack-based addressing 2016-07-15 15:35:52 +00:00
HexagonOptAddrMode.cpp [Hexagon] Referencify MachineInstr in HexagonInstrInfo, NFC 2016-07-29 21:49:42 +00:00
HexagonOptimizeSZextends.cpp Add optimization bisect opt-in calls for Hexagon passes 2016-04-26 19:46:28 +00:00
HexagonPeephole.cpp [Hexagon] Clear kill flags from modified registers in peephole optimizer 2016-08-04 14:17:16 +00:00
HexagonRDF.cpp [Hexagon] Implement RDF-based post-RA optimizations 2016-01-12 19:09:01 +00:00
HexagonRDF.h [hexagon] Move BlockRanges and RDF stuff into the llvm namespace. 2016-05-27 10:06:40 +00:00
HexagonRDFOpt.cpp Use range algorithms instead of unpacking begin/end 2016-08-11 21:15:00 +00:00
HexagonRegisterInfo.cpp Run clang-tidy's performance-unnecessary-copy-initialization over LLVM. 2016-06-12 17:30:47 +00:00
HexagonRegisterInfo.h [Hexagon] Make getCallerSavedRegs specific to a register class 2016-05-16 18:02:28 +00:00
HexagonRegisterInfo.td [Hexagon] Separate C8 and USR to avoid unwanted subregister composition 2016-05-28 01:51:16 +00:00
HexagonSchedule.td [Hexagon] Update instruction formats 2015-11-23 14:09:26 +00:00
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 Pass DebugLoc and SDLoc by const ref. 2016-06-12 15:39:02 +00:00
HexagonSplitConst32AndConst64.cpp [Hexagon] Simplify the SplitConst32/64 pass 2016-08-10 18:05:47 +00:00
HexagonSplitDouble.cpp Use the range variant of remove_if instead of unpacking begin/end 2016-08-12 04:32:37 +00:00
HexagonStoreWidening.cpp Add optimization bisect opt-in calls for Hexagon passes 2016-04-26 19:46:28 +00:00
HexagonSubtarget.cpp Replace MachineInstr* with MachineInstr& in TargetInstrInfo, NFC 2016-08-01 17:55:48 +00:00
HexagonSubtarget.h [Hexagon] Referencify MachineInstr in HexagonInstrInfo, NFC 2016-07-29 21:49:42 +00:00
HexagonSystemInst.td [Hexagon] Add definitions for trap/pause instructions 2016-04-22 16:25:00 +00:00
HexagonTargetMachine.cpp [Hexagon] Generate vector printing instructions 2016-08-01 19:36:39 +00:00
HexagonTargetMachine.h Delete Reloc::Default. 2016-05-18 22:04:49 +00:00
HexagonTargetObjectFile.cpp [Hexagon] Expand handling of the small-data/bss section 2016-04-21 18:56:45 +00:00
HexagonTargetObjectFile.h [Hexagon] Expand handling of the small-data/bss section 2016-04-21 18:56:45 +00:00
HexagonTargetStreamer.h
HexagonTargetTransformInfo.cpp [Hexagon] Use loop data prefetch on Hexagon 2016-07-22 14:22:43 +00:00
HexagonTargetTransformInfo.h [Hexagon] Use loop data prefetch on Hexagon 2016-07-22 14:22:43 +00:00
HexagonVLIWPacketizer.cpp Use the range variant of find instead of unpacking begin/end 2016-08-11 22:21:41 +00:00
HexagonVLIWPacketizer.h [Hexagon] Referencify MachineInstr in HexagonInstrInfo, NFC 2016-07-29 21:49:42 +00:00
HexagonVectorPrint.cpp Hexagon: Use llvm_unreachable. NFC. 2016-08-03 15:51:10 +00:00
LLVMBuild.txt [Hexagon] Make HexagonCodeGen depend on Scalar 2016-07-22 17:23:46 +00:00
RDFCopy.cpp [hexagon] Move BlockRanges and RDF stuff into the llvm namespace. 2016-05-27 10:06:40 +00:00
RDFCopy.h [hexagon] Move BlockRanges and RDF stuff into the llvm namespace. 2016-05-27 10:06:40 +00:00
RDFDeadCode.cpp [RDF] Improve compile-time performance of dead code elimination 2016-01-18 20:42:47 +00:00
RDFDeadCode.h [hexagon] Move BlockRanges and RDF stuff into the llvm namespace. 2016-05-27 10:06:40 +00:00
RDFGraph.cpp Use range algorithms instead of unpacking begin/end 2016-08-11 21:15:00 +00:00
RDFGraph.h [RDF] Make the graph construction/use less expensive 2016-07-22 16:09:47 +00:00
RDFLiveness.cpp Use range algorithms instead of unpacking begin/end 2016-08-11 21:15:00 +00:00
RDFLiveness.h [hexagon] Move BlockRanges and RDF stuff into the llvm namespace. 2016-05-27 10:06:40 +00:00