1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 19:42:54 +02:00
llvm-mirror/lib/Target/Hexagon
Krzysztof Parzyszek 702277f07f [Hexagon] Optimize stack slot spills
Replace spills to memory with spills to registers, if possible. This
applies mostly to predicate registers (both scalar and vector), since
they are very limited in number. A spill of a predicate register may
happen even if there is a general-purpose register available. In cases
like this the stack spill/reload may be eliminated completely.

This optimization will consider all stack objects, regardless of where
they came from and try to match the live range of the stack slot with
a dead range of a register from an appropriate register class.

llvm-svn: 260758
2016-02-12 22:53:35 +00:00
..
AsmParser Replace usages of llvm::utostr_32 with just llvm::utostr. While this is less efficient, its unclear the few places that were using the _32 version were doing so for efficiency. 2016-01-31 20:00:24 +00:00
Disassembler [NFC] Referencing manual for reason why subregbit is checked 2016-02-01 18:15:39 +00:00
MCTargetDesc [MC] Merge VK_PPC_TPREL in to generic VK_TPREL. 2016-02-10 18:32:01 +00:00
TargetInfo Remove autoconf support 2016-01-26 21:29:08 +00:00
BitTracker.cpp ADT: Remove last implicit ilist iterator conversions, NFC 2015-11-07 00:01:16 +00:00
BitTracker.h -Wdeprecated-clean: Fix cases of violating the rule of 5 in ways that are deprecated in C++11 2015-08-01 05:31:27 +00:00
CMakeLists.txt [Hexagon] Optimize stack slot spills 2016-02-12 22:53:35 +00:00
Hexagon.h [Hexagon] Improve lowering of instructions to the MC layer 2015-12-02 23:08:29 +00:00
Hexagon.td [TableGen] Modify the AsmMatcherEmitter to only apply the table growth from r252440 to the Hexagon target. 2015-12-31 08:18:23 +00:00
HexagonAsmPrinter.cpp [Hexagon] Make helper function static. NFC. 2016-01-12 14:58:49 +00:00
HexagonAsmPrinter.h [Hexagon] Preprocess mapped instructions before lowering to MC 2015-12-15 17:05:45 +00:00
HexagonBitSimplify.cpp [Hexagon] Use S2_lsr_i_r instead of S2_extractu to obtain upper halfword 2016-01-14 21:59:22 +00:00
HexagonBitTracker.cpp [Hexagon] HVX vector register classes and more isel patterns 2015-11-26 04:33:11 +00:00
HexagonBitTracker.h [Hexagon] Move BitTracker into the llvm namespace and remove redundant qualifications 2015-07-13 20:38:16 +00:00
HexagonBlockRanges.cpp [Hexagon] Optimize stack slot spills 2016-02-12 22:53:35 +00:00
HexagonBlockRanges.h [Hexagon] Optimize stack slot spills 2016-02-12 22:53:35 +00:00
HexagonCallingConv.td
HexagonCFGOptimizer.cpp Replace all weight-based interfaces in MBB with probability-based interfaces, and update all uses of old interfaces. 2015-12-01 05:29:22 +00:00
HexagonCommonGEP.cpp Hexagon: Remove implicit ilist iterator conversions, NFC 2015-10-20 00:46:39 +00:00
HexagonCopyToCombine.cpp PR26172: unnecessary indirection in HexagonCopyToCombine.cpp 2016-01-21 12:45:17 +00:00
HexagonEarlyIfConv.cpp Normalize MBB's successors' probabilities in several locations. 2015-12-13 09:26:17 +00:00
HexagonExpandCondsets.cpp [Hexagon] Add missing preamble to a source file 2015-07-09 15:40:25 +00:00
HexagonFixupHwLoops.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
HexagonFrameLowering.cpp [Hexagon] Optimize stack slot spills 2016-02-12 22:53:35 +00:00
HexagonFrameLowering.h [Hexagon] Optimize stack slot spills 2016-02-12 22:53:35 +00:00
HexagonGenExtract.cpp Hexagon: Remove implicit ilist iterator conversions, NFC 2015-10-20 00:46:39 +00:00
HexagonGenInsert.cpp [Hexagon] Fix the return value from HexagonGenInsert::runOnMachineFunction 2015-11-20 20:46:23 +00:00
HexagonGenMux.cpp Replace uint16_t with the MCPhysReg typedef in many places. A lot of physical register arrays already use this typedef. 2015-12-05 07:13:35 +00:00
HexagonGenPredicate.cpp Fix some comment typos. 2015-08-08 18:27:36 +00:00
HexagonHardwareLoops.cpp Hexagon: Remove implicit ilist iterator conversions, NFC 2015-10-20 00:46:39 +00:00
HexagonInstrAlias.td [Hexagon] Adding instruction aliases and tests. 2015-11-10 01:58:26 +00:00
HexagonInstrEnc.td [Hexagon] Adding skeleton of HVX extension instructions. 2015-10-17 01:33:04 +00:00
HexagonInstrFormats.td [Hexagon] Remove the remnants of isConstExtProfitable 2015-10-20 19:04:53 +00:00
HexagonInstrFormatsV4.td [Hexagon] Update instruction formats 2015-11-23 14:09:26 +00:00
HexagonInstrFormatsV60.td [Hexagon] Update instruction formats 2015-11-23 14:09:26 +00:00
HexagonInstrInfo.cpp [Hexagon] Recognize more cases in copyPhysReg and stack slot load/store 2016-02-12 21:56:41 +00:00
HexagonInstrInfo.h [Hexagon] Add utility functions to detect sign- and zero-extending loads 2016-02-12 18:37:23 +00:00
HexagonInstrInfo.td [Hexagon] Eliminate pseudo instructions for circ/brev loads and stores 2016-02-12 17:01:51 +00:00
HexagonInstrInfoV3.td
HexagonInstrInfoV4.td [Hexagon] Add implicit uses of GP to GP-relative loads and stores 2016-01-11 15:49:58 +00:00
HexagonInstrInfoV5.td [Hexagon] Treat transfers of FP immediates are pseudo instructions 2015-11-25 21:40:03 +00:00
HexagonInstrInfoV60.td [Hexagon] Implement CONCAT_VECTORS for HVX using V6_vcombine 2015-12-03 16:47:20 +00:00
HexagonInstrInfoVector.td [Hexagon] Hexagon V60 HVX intrinsic defintions 2015-11-26 16:54:33 +00:00
HexagonIntrinsics.td [Hexagon] Eliminate pseudo instructions for circ/brev loads and stores 2016-02-12 17:01:51 +00:00
HexagonIntrinsicsDerived.td
HexagonIntrinsicsV3.td
HexagonIntrinsicsV4.td Eliminate constant-extender profitability checks from Hexagon isel 2015-03-12 00:19:59 +00:00
HexagonIntrinsicsV5.td
HexagonIntrinsicsV60.td [Hexagon] Hexagon V60 HVX intrinsic defintions 2015-11-26 16:54:33 +00:00
HexagonISelDAGToDAG.cpp [Hexagon] Eliminate pseudo instructions for circ/brev loads and stores 2016-02-12 17:01:51 +00:00
HexagonISelLowering.cpp [Hexagon] Fix the options controlling jump table generation 2016-01-13 21:43:13 +00:00
HexagonISelLowering.h [Hexagon] Add PIC support 2015-12-18 20:19:30 +00:00
HexagonIsetDx.td [Hexagon] Reapply r239097 with tests corrected for shuffling and duplexing. 2015-06-05 16:00:11 +00:00
HexagonMachineFunctionInfo.cpp
HexagonMachineFunctionInfo.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
HexagonMachineScheduler.cpp Make MachineScheduler debug output less confusing. 2015-09-18 18:52:20 +00:00
HexagonMachineScheduler.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
HexagonMCInstLower.cpp [Hexagon] Preprocess mapped instructions before lowering to MC 2015-12-15 17:05:45 +00:00
HexagonNewValueJump.cpp [Hexagon] Handle branches with non-mbb operands 2016-01-14 15:05:27 +00:00
HexagonOperands.td [Hexagon] Enabling ASM parsing on Hexagon backend and adding instruction parsing tests. General updating of the code emission. 2015-11-09 04:07:48 +00:00
HexagonOptimizeSZextends.cpp Hexagon: Remove implicit ilist iterator conversions, NFC 2015-10-20 00:46:39 +00:00
HexagonPeephole.cpp [Hexagon] Use symbolic name for subregister instead of hardcoded number 2015-10-20 19:26:36 +00:00
HexagonRDF.cpp [Hexagon] Implement RDF-based post-RA optimizations 2016-01-12 19:09:01 +00:00
HexagonRDF.h [Hexagon] Implement RDF-based post-RA optimizations 2016-01-12 19:09:01 +00:00
HexagonRDFOpt.cpp Move classes defined in a cpp file into an anonymous namespace. 2016-02-05 13:50:53 +00:00
HexagonRegisterInfo.cpp [Hexagon] Eliminate pseudo instructions for circ/brev loads and stores 2016-02-12 17:01:51 +00:00
HexagonRegisterInfo.h Targets: commonize some stack realignment code 2015-07-20 22:51:32 +00:00
HexagonRegisterInfo.td [Hexagon] Mark HVX registers as volatile 2016-02-12 22:26:44 +00:00
HexagonSchedule.td [Hexagon] Update instruction formats 2015-11-23 14:09:26 +00:00
HexagonScheduleV4.td [Hexagon] Bring HexagonInstrInfo up to date 2015-11-24 14:55:26 +00:00
HexagonScheduleV55.td [Hexagon] Adding skeleton of HVX extension instructions. 2015-10-17 01:33:04 +00:00
HexagonScheduleV60.td Hexagon V60/HVX DFA scheduler support 2015-11-21 20:00:45 +00:00
HexagonSelectCCInfo.td
HexagonSelectionDAGInfo.cpp [Hexagon] Make memcpy lowering thread-safe 2015-12-16 17:29:37 +00:00
HexagonSelectionDAGInfo.h Rename TargetSelectionDAGInfo into SelectionDAGTargetInfo and move it to CodeGen/ 2016-01-27 16:32:26 +00:00
HexagonSplitConst32AndConst64.cpp Hexagon: Remove implicit ilist iterator conversions, NFC 2015-10-20 00:46:39 +00:00
HexagonSplitDouble.cpp [Hexagon] Split double registers 2015-10-16 20:38:54 +00:00
HexagonStoreWidening.cpp [Hexagon] Merge adjacent stores 2015-10-16 19:43:56 +00:00
HexagonSubtarget.cpp [Hexagon] Subtarget features/default CPU corrections 2015-12-14 15:03:54 +00:00
HexagonSubtarget.h [Hexagon] Subtarget features/default CPU corrections 2015-12-14 15:03:54 +00:00
HexagonSystemInst.td [Hexagon] Add system instructions for cache manipulation 2016-01-06 14:22:22 +00:00
HexagonTargetMachine.cpp [Hexagon] Remove HexagonExpandPredSpillCode pass 2016-02-12 17:09:58 +00:00
HexagonTargetMachine.h [Hexagon] Add PIC support 2015-12-18 20:19:30 +00:00
HexagonTargetObjectFile.cpp GlobalValue: use getValueType() instead of getType()->getPointerElementType(). 2016-01-16 20:30:46 +00:00
HexagonTargetObjectFile.h Move alignment from MCSectionData to MCSection. 2015-05-21 19:20:38 +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] Edit a comment. NFC 2015-08-05 21:08:26 +00:00
HexagonTargetTransformInfo.h constify the Function parameter to the TTI creation callback and 2015-09-16 23:38:13 +00:00
HexagonVLIWPacketizer.cpp [Hexagon] Misc fixes to r255807 2015-12-16 20:07:04 +00:00
HexagonVLIWPacketizer.h [Hexagon] Update the Hexagon packetizer 2015-12-16 19:36:12 +00:00
LLVMBuild.txt [Hexagon] Adding LLVMBuild.txt reference to HexagonAsmParser. 2015-11-09 04:31:02 +00:00
RDFCopy.cpp [RDF] Improvements to copy propagation 2016-01-18 20:43:57 +00:00
RDFCopy.h [RDF] Improvements to copy propagation 2016-01-18 20:43:57 +00:00
RDFDeadCode.cpp [RDF] Improve compile-time performance of dead code elimination 2016-01-18 20:42:47 +00:00
RDFDeadCode.h [RDF] Improve compile-time performance of dead code elimination 2016-01-18 20:42:47 +00:00
RDFGraph.cpp Fixed MSVC Win64 warning of implicit conversion of 32-bit shift to 64-bits. 2016-01-18 21:11:19 +00:00
RDFGraph.h [RDF] Allow unlinking ref nodes from data-flow chains only 2016-01-18 20:41:34 +00:00
RDFLiveness.cpp RDF: Implement register liveness analysis 2016-01-12 15:56:33 +00:00
RDFLiveness.h RDF: Implement register liveness analysis 2016-01-12 15:56:33 +00:00