llvm/lib/Target/Hexagon
Krzysztof Parzyszek cfb0063c60 [Hexagon] Avoid infinite loops in HexagonLoopIdiomRecognition
- Avoid explosive growth of the simplification queue by not queuing
  expressions that are alredy in it.
- Add an iteration counter and abort after a sufficiently large number
  of iterations (assuming that it's a symptom of an infinite loop).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@298655 91177308-0d34-0410-b5e6-96231b3b80d8
2017-03-23 23:01:22 +00:00
..
AsmParser [Hexagon] Introduce Hexagon V62 2017-02-10 23:46:45 +00:00
Disassembler [Hexagon] Implement @llvm.readcyclecounter() 2017-02-22 22:28:47 +00:00
MCTargetDesc [Hexagon] Updating inline saturate lanes for v62 version. 2017-03-16 00:35:28 +00:00
TargetInfo Move the global variables representing each Target behind accessor function 2016-10-09 23:00:34 +00:00
BitTracker.cpp [Hexagon] Allow setting register in BitVal without storing into map 2017-02-23 22:08:50 +00:00
BitTracker.h [Hexagon] Allow setting register in BitVal without storing into map 2017-02-23 22:08:50 +00:00
CMakeLists.txt [Hexagon] Remove unused .td files 2017-02-10 19:54:00 +00:00
Hexagon.h [Hexagon] Improve lowering of instructions to the MC layer 2015-12-02 23:08:29 +00:00
Hexagon.td [Hexagon] Introduce Hexagon V62 2017-02-10 23:46:45 +00:00
HexagonAsmPrinter.cpp [Hexagon] Remove encoding bits from mapped instructions 2017-02-07 17:42:11 +00:00
HexagonAsmPrinter.h Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
HexagonBitSimplify.cpp [Hexagon] Fixes to the bitsplit generation 2017-03-09 22:02:14 +00:00
HexagonBitTracker.cpp Rename AttributeSet to AttributeList 2017-03-21 16:57:19 +00:00
HexagonBitTracker.h [Hexagon, TableGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-01-04 02:02:05 +00:00
HexagonBlockRanges.cpp [Hexagon] Defs and clobbers can overlap 2017-02-27 18:03:35 +00:00
HexagonBlockRanges.h [Hexagon] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2016-12-13 22:13:50 +00:00
HexagonBranchRelaxation.cpp [Hexagon] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2016-12-13 22:13:50 +00:00
HexagonCFGOptimizer.cpp Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
HexagonCommonGEP.cpp Drop graph_ prefix 2017-02-09 20:37:46 +00:00
HexagonConstPropagation.cpp [Hexagon] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2016-12-14 22:50:46 +00:00
HexagonCopyToCombine.cpp [Hexagon] Start using regmasks on calls 2017-02-17 22:14:51 +00:00
HexagonDepArch.h [Hexagon] Introduce Hexagon V62 2017-02-10 23:46:45 +00:00
HexagonDepArch.td [Hexagon] Introduce Hexagon V62 2017-02-10 23:46:45 +00:00
HexagonDepDecoders.h [Hexagon] Replace instruction definitions with auto-generated ones 2017-02-10 15:33:13 +00:00
HexagonDepInstrFormats.td [Hexagon] Replace instruction definitions with auto-generated ones 2017-02-10 15:33:13 +00:00
HexagonDepInstrInfo.td [Hexagon] Start using regmasks on calls 2017-02-17 22:14:51 +00:00
HexagonDepITypes.h [Hexagon] Introduce Hexagon V62 2017-02-10 23:46:45 +00:00
HexagonDepITypes.td [Hexagon] Introduce Hexagon V62 2017-02-10 23:46:45 +00:00
HexagonDepMappings.td [Hexagon] Replace instruction definitions with auto-generated ones 2017-02-10 15:33:13 +00:00
HexagonDepOperands.td [Hexagon] Replace instruction definitions with auto-generated ones 2017-02-10 15:33:13 +00:00
HexagonEarlyIfConv.cpp [Hexagon] Fix a condition in HexagonEarlyIfConv.cpp 2017-03-14 15:21:33 +00:00
HexagonExpandCondsets.cpp [Hexagon] Mark dead defs as <dead> in expand-condsets 2017-03-06 17:09:06 +00:00
HexagonFixupHwLoops.cpp [CodeGen] Rename MachineInstrBuilder::addOperand. NFC 2017-01-13 09:58:52 +00:00
HexagonFrameLowering.cpp [Hexagon] Start using regmasks on calls 2017-02-17 22:14:51 +00:00
HexagonFrameLowering.h [Hexagon] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2016-12-16 01:00:40 +00:00
HexagonGenExtract.cpp Drop graph_ prefix 2017-02-09 20:37:46 +00:00
HexagonGenInsert.cpp Drop graph_ prefix 2017-02-09 20:37:46 +00:00
HexagonGenMux.cpp [CodeGen] Rename MachineInstrBuilder::addOperand. NFC 2017-01-13 09:58:52 +00:00
HexagonGenPredicate.cpp [Hexagon] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2016-12-16 01:00:40 +00:00
HexagonHardwareLoops.cpp [Hexagon] Start using regmasks on calls 2017-02-17 22:14:51 +00:00
HexagonHazardRecognizer.cpp [Hexagon] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2016-12-17 01:09:05 +00:00
HexagonHazardRecognizer.h [Hexagon] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2016-12-17 01:09:05 +00:00
HexagonIICHVX.td [Hexagon] Introduce Hexagon V62 2017-02-10 23:46:45 +00:00
HexagonIICScalar.td [Hexagon] Introduce Hexagon V62 2017-02-10 23:46:45 +00:00
HexagonInstrFormats.td [Hexagon] Replace instruction definitions with auto-generated ones 2017-02-10 15:33:13 +00:00
HexagonInstrFormatsV4.td [Hexagon] Replace instruction definitions with auto-generated ones 2017-02-10 15:33:13 +00:00
HexagonInstrFormatsV60.td [Hexagon] Replace instruction definitions with auto-generated ones 2017-02-10 15:33:13 +00:00
HexagonInstrInfo.cpp [Hexagon] Pick a dot-old instruction that matches the architecture 2017-03-06 17:03:16 +00:00
HexagonInstrInfo.h [Hexagon] Pick a dot-old instruction that matches the architecture 2017-03-06 17:03:16 +00:00
HexagonIntrinsics.td [Hexagon] Add intrinsics for masked vector stores 2017-02-22 21:23:09 +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 [Hexagon] Use common Pat classes for selecting code for intrinsics 2016-04-22 18:05:55 +00:00
HexagonIntrinsicsV60.td [Hexagon] Replace instruction definitions with auto-generated ones 2017-02-10 15:33:13 +00:00
HexagonISelDAGToDAG.cpp [Hexagon] Refactor the DAG preprocessing code, NFC 2017-03-09 19:14:23 +00:00
HexagonISelLowering.cpp [Hexagon] Properly handle 'q' constraint in 128-byte vector mode 2017-03-02 17:50:24 +00:00
HexagonISelLowering.h [Hexagon] Patterns for CTPOP, BSWAP and BITREVERSE 2017-02-23 15:02:09 +00:00
HexagonLoopIdiomRecognition.cpp [Hexagon] Avoid infinite loops in HexagonLoopIdiomRecognition 2017-03-23 23:01:22 +00:00
HexagonMachineFunctionInfo.cpp
HexagonMachineFunctionInfo.h [Hexagon, TableGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-01-04 02:02:05 +00:00
HexagonMachineScheduler.cpp [Hexagon] Update instruction types 2017-02-07 17:47:37 +00:00
HexagonMachineScheduler.h Use the range variant of find instead of unpacking begin/end 2016-08-11 22:21:41 +00:00
HexagonMapAsm2IntrinV62.gen.td [Hexagon] Introduce Hexagon V62 2017-02-10 23:46:45 +00:00
HexagonMCInstLower.cpp [Hexagon] Start using regmasks on calls 2017-02-17 22:14:51 +00:00
HexagonNewValueJump.cpp [Hexagon] Avoid IMPLICIT_DEFs as new-value producers 2017-02-23 17:47:34 +00:00
HexagonOperands.td [Hexagon] Replace instruction definitions with auto-generated ones 2017-02-10 15:33:13 +00:00
HexagonOptAddrMode.cpp [RDF] Add recursion limit to getAllReachingDefsRec 2017-03-01 19:30:42 +00:00
HexagonOptimizeSZextends.cpp Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
HexagonPatterns.td [Hexagon] Fix instruction selection for sign-extending i1 to i64 2017-02-28 22:37:01 +00:00
HexagonPeephole.cpp [Hexagon] Separate Hexagon subreg indices for different register classes 2016-11-09 16:19:08 +00:00
HexagonPseudo.td [Hexagon] Start using regmasks on calls 2017-02-17 22:14:51 +00:00
HexagonRDFOpt.cpp Remove unused lambda captures. NFC 2017-01-13 17:12:16 +00:00
HexagonRegisterInfo.cpp [Hexagon] Implement @llvm.readcyclecounter() 2017-02-22 22:28:47 +00:00
HexagonRegisterInfo.h [Hexagon] Start using regmasks on calls 2017-02-17 22:14:51 +00:00
HexagonRegisterInfo.td [Hexagon] Implement @llvm.readcyclecounter() 2017-02-22 22:28:47 +00:00
HexagonSchedule.td [Hexagon] Introduce Hexagon V62 2017-02-10 23:46:45 +00:00
HexagonScheduleV4.td [Hexagon] Replace instruction definitions with auto-generated ones 2017-02-10 15:33:13 +00:00
HexagonScheduleV55.td [Hexagon] Replace instruction definitions with auto-generated ones 2017-02-10 15:33:13 +00:00
HexagonScheduleV60.td [Hexagon] Replace instruction definitions with auto-generated ones 2017-02-10 15:33:13 +00:00
HexagonScheduleV62.td [Hexagon] Introduce Hexagon V62 2017-02-10 23:46:45 +00:00
HexagonSelectionDAGInfo.cpp Make library calls sensitive to regparm module flag (Fixes PR3997). 2017-03-18 00:44:07 +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 Cleanup dump() functions. 2017-01-28 02:02:38 +00:00
HexagonStoreWidening.cpp [Hexagon] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2016-12-17 01:09:05 +00:00
HexagonSubtarget.cpp [Hexagon] Introduce Hexagon V62 2017-02-10 23:46:45 +00:00
HexagonSubtarget.h [Hexagon] Introduce Hexagon V62 2017-02-10 23:46:45 +00:00
HexagonTargetMachine.cpp Rename AttributeSet to AttributeList 2017-03-21 16:57:19 +00:00
HexagonTargetMachine.h [Hexagon] Add Hexagon-specific loop idiom recognition pass 2017-01-26 21:41:10 +00:00
HexagonTargetObjectFile.cpp [Hexagon, TableGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-01-04 02:02:05 +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 Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
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 [Hexagon] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2016-12-17 01:09:05 +00:00
HexagonVLIWPacketizer.cpp [Hexagon] Pick a dot-old instruction that matches the architecture 2017-03-06 17:03:16 +00:00
HexagonVLIWPacketizer.h [Hexagon] Start using regmasks on calls 2017-02-17 22:14:51 +00:00
LLVMBuild.txt [Hexagon] Require IPO library in Hexagon build 2017-01-26 23:03:22 +00:00
RDFCopy.cpp [RDF] Remove the map of reaching defs from copy propagation 2017-03-10 22:44:24 +00:00
RDFCopy.h [RDF] Remove the map of reaching defs from copy propagation 2017-03-10 22:44:24 +00:00
RDFDeadCode.cpp [Hexagon] Start using regmasks on calls 2017-02-17 22:14:51 +00:00
RDFDeadCode.h [hexagon] Move BlockRanges and RDF stuff into the llvm namespace. 2016-05-27 10:06:40 +00:00
RDFGraph.cpp [RDF] Only access block live-ins when tracking liveness 2017-02-22 18:27:36 +00:00
RDFGraph.h [RDF] Implement Liveness::getNearestAliasedRef(Reg, Inst) 2017-03-10 22:42:17 +00:00
RDFLiveness.cpp [RDF] Implement Liveness::getNearestAliasedRef(Reg, Inst) 2017-03-10 22:42:17 +00:00
RDFLiveness.h [RDF] Implement Liveness::getNearestAliasedRef(Reg, Inst) 2017-03-10 22:42:17 +00:00
RDFRegisters.cpp [RDF] Support for partial structural aliases in RegisterAggr 2017-02-22 21:42:15 +00:00
RDFRegisters.h [RDF] Support for partial structural aliases in RegisterAggr 2017-02-22 21:42:15 +00:00