llvm-project/llvm/lib/Target/Hexagon
Krzysztof Parzyszek 058d3cec15 [Hexagon] Remove recursion in visitUsesOf, replace with use queue
This is primarily to reduce stack usage, but ordering the use queue
according to the position in the code (earlier instructions visited
before later ones) reduces the number of unnecessary bottoms due to
visiting instructions out of order, e.g.
  %reg1 = copy %reg0
  %reg2 = copy %reg0
  %reg3 = and %reg1, %reg2
Here, reg3 should be known to be same as reg0-2, but if reg3 is
evaluated after reg1 is updated, but before reg2 is updated, the two
inputs to the and will appear different, causing reg3 to become
bottom.

llvm-svn: 320866
2017-12-15 21:34:05 +00:00
..
AsmParser [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
Disassembler Remove a non-modular header (& inline it into its one use) 2017-12-14 23:45:58 +00:00
MCTargetDesc [Targets] Don't automatically include the scheduler class enum from *GenInstrInfo.inc with GET_INSTRINFO_ENUM. Make targets request is separately. 2017-12-13 07:26:17 +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] Remove recursion in visitUsesOf, replace with use queue 2017-12-15 21:34:05 +00:00
BitTracker.h [Hexagon] Remove recursion in visitUsesOf, replace with use queue 2017-12-15 21:34:05 +00:00
CMakeLists.txt [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +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] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonAsmPrinter.cpp [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonAsmPrinter.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
HexagonBitSimplify.cpp [CodeGen] Unify MBB reference format in both MIR and debug output 2017-12-04 17:18:51 +00:00
HexagonBitTracker.cpp [CodeGen] Rename functions PrintReg* to printReg* 2017-11-28 12:42:37 +00:00
HexagonBitTracker.h [Hexagon] Better determination of register classes in bit tracker 2017-09-25 19:12:55 +00:00
HexagonBlockRanges.cpp [CodeGen] Use MachineOperand::print in the MIRPrinter for MO_Register. 2017-12-07 10:40:31 +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
HexagonCFGOptimizer.cpp Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
HexagonCommonGEP.cpp [Hexagon] Fix expensive checks build bot broken in r309230. 2017-07-26 23:56:29 +00:00
HexagonConstExtenders.cpp [CodeGen] Rename functions PrintReg* to printReg* 2017-11-28 12:42:37 +00:00
HexagonConstPropagation.cpp [CodeGen] Use MachineOperand::print in the MIRPrinter for MO_Register. 2017-12-07 10:40:31 +00:00
HexagonCopyToCombine.cpp [CodeGen] Use MachineOperand::print in the MIRPrinter for MO_Register. 2017-12-07 10:40:31 +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
HexagonDepDecoders.h Remove a non-modular header (& inline it into its one use) 2017-12-14 23:45:58 +00:00
HexagonDepIICHVX.td [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonDepIICScalar.td [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +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
HexagonDepInstrFormats.td [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonDepInstrInfo.td [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonDepMappings.td [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +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 [CodeGen] Use MachineOperand::print in the MIRPrinter for MO_Register. 2017-12-07 10:40:31 +00:00
HexagonExpandCondsets.cpp Rename LiveIntervalAnalysis.h to LiveIntervals.h 2017-12-13 02:51:04 +00:00
HexagonFixupHwLoops.cpp Target/TargetInstrInfo.h -> CodeGen/TargetInstrInfo.h to match layering 2017-11-08 01:01:31 +00:00
HexagonFrameLowering.cpp [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +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 [CodeGen] Unify MBB reference format in both MIR and debug output 2017-12-04 17:18:51 +00:00
HexagonGenMux.cpp [Hexagon] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-07-29 00:56:56 +00:00
HexagonGenPredicate.cpp [CodeGen] Rename functions PrintReg* to printReg* 2017-11-28 12:42:37 +00:00
HexagonHardwareLoops.cpp [CodeGen] Use MachineOperand::print in the MIRPrinter for MO_Register. 2017-12-07 10:40:31 +00:00
HexagonHazardRecognizer.cpp
HexagonHazardRecognizer.h
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
HexagonISelDAGToDAG.cpp [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonISelDAGToDAG.h [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonISelDAGToDAGHVX.cpp [Hexagon] Better detection of identity and undef masks in shuffles 2017-12-12 20:23:12 +00:00
HexagonISelLowering.cpp TLI: Allow using PSV for intrinsic mem operands 2017-12-14 22:34:10 +00:00
HexagonISelLowering.h TLI: Allow using PSV for intrinsic mem operands 2017-12-14 22:34:10 +00:00
HexagonISelLoweringHVX.cpp [Hexagon] Generate HVX code for comparisons and selects 2017-12-14 21:28:48 +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] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonInstrInfo.h [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonIntrinsics.td [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +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
HexagonLoopIdiomRecognition.cpp [ModRefInfo] Make enum ModRefInfo an enum class [NFC]. 2017-12-07 22:41:34 +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
HexagonMachineFunctionInfo.cpp
HexagonMachineFunctionInfo.h
HexagonMachineScheduler.cpp [CodeGen] Unify MBB reference format in both MIR and debug output 2017-12-04 17:18:51 +00:00
HexagonMachineScheduler.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +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
HexagonNewValueJump.cpp [CodeGen] Use MachineOperand::print in the MIRPrinter for MO_Register. 2017-12-07 10:40:31 +00:00
HexagonOperands.td [Hexagon] Reorganize and update instruction patterns 2017-10-20 19:33:12 +00:00
HexagonOptAddrMode.cpp [CodeGen] Unify MBB reference format in both MIR and debug output 2017-12-04 17:18:51 +00:00
HexagonOptimizeSZextends.cpp
HexagonPatterns.td [Hexagon] Handle concat_vectors of all allowed HVX types 2017-12-15 21:23:12 +00:00
HexagonPatternsV65.td [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonPeephole.cpp [CodeGen] Use MachineOperand::print in the MIRPrinter for MO_Register. 2017-12-07 10:40:31 +00:00
HexagonPseudo.td [Hexagon] New HVX target features. 2017-10-18 18:07:07 +00:00
HexagonRDFOpt.cpp [Hexagon] Allow the RDF optimizations to be run in .mir testcases 2017-10-30 14:11:52 +00:00
HexagonRegisterInfo.cpp [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonRegisterInfo.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
HexagonRegisterInfo.td [Hexagon] Generate HVX code for comparisons and selects 2017-12-14 21:28:48 +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 Make library calls sensitive to regparm module flag (Fixes PR3997). 2017-03-18 00:44:07 +00:00
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 [CodeGen] Unify MBB reference format in both MIR and debug output 2017-12-04 17:18:51 +00:00
HexagonStoreWidening.cpp [CodeGen] Print "%vreg0" as "%0" in both MIR and debug output 2017-11-30 12:12:19 +00:00
HexagonSubtarget.cpp [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonSubtarget.h [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonTargetMachine.cpp [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonTargetMachine.h Revert "TargetMachine: Merge TargetMachine and LLVMTargetMachine" 2017-10-12 22:57:28 +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] 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
HexagonTargetTransformInfo.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
HexagonVLIWPacketizer.cpp Rename LiveIntervalAnalysis.h to LiveIntervals.h 2017-12-13 02:51:04 +00:00
HexagonVLIWPacketizer.h [Hexagon] Add support for Hexagon V65 2017-12-11 18:57:54 +00:00
HexagonVectorLoopCarriedReuse.cpp Add llvm::for_each as a range-based extensions to <algorithm> and make use of it in some cases where it is a more clear alternative to std::for_each. 2017-11-03 20:01:25 +00:00
HexagonVectorPrint.cpp Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
LLVMBuild.txt
RDFCopy.cpp Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +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] Make sure that RDF does not remove EH_LABELs 2017-11-21 21:05:51 +00:00
RDFDeadCode.h
RDFGraph.cpp [CodeGen] Unify MBB reference format in both MIR and debug output 2017-12-04 17:18:51 +00:00
RDFGraph.h [CodeGen] Use MachineOperand::print in the MIRPrinter for MO_Register. 2017-12-07 10:40:31 +00:00
RDFLiveness.cpp [CodeGen] Unify MBB reference format in both MIR and debug output 2017-12-04 17:18:51 +00:00
RDFLiveness.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
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