llvm/lib/Target/Hexagon
Akira Hatanaka 55c0268714 Reduce the size of MCRelaxableFragment.
MCRelaxableFragment previously kept a copy of MCSubtargetInfo and
MCInst to enable re-encoding the MCInst later during relaxation. A copy
of MCSubtargetInfo (instead of a reference or pointer) was needed
because the feature bits could be modified by the parser.

This commit replaces the MCSubtargetInfo copy in MCRelaxableFragment
with a constant reference to MCSubtargetInfo. The copies of
MCSubtargetInfo are kept in MCContext, and the target parsers are now
responsible for asking MCContext to provide a copy whenever the feature
bits of MCSubtargetInfo have to be toggled.
 
With this patch, I saw a 4% reduction in peak memory usage when I
compiled verify-uselistorder.lto.bc using llc.

rdar://problem/21736951

Differential Revision: http://reviews.llvm.org/D14346


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253127 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-14 06:35:56 +00:00
..
AsmParser Reduce the size of MCRelaxableFragment. 2015-11-14 06:35:56 +00:00
Disassembler [Hexagon] Factoring bundle creation in to a utility function. 2015-11-13 17:42:46 +00:00
MCTargetDesc [Hexagon] Fixing memory leak during relaxation by allocating MCInst in MCContext. 2015-11-13 21:45:50 +00:00
TargetInfo Prune redundant dependencies in LLVMBuild.txt. 2013-12-11 00:30:57 +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] 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
Hexagon.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Hexagon.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
HexagonAsmPrinter.cpp [Hexagon] Factoring bundle creation in to a utility function. 2015-11-13 17:42:46 +00:00
HexagonAsmPrinter.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
HexagonBitSimplify.cpp [Hexagon] Bit-based instruction simplification 2015-10-20 22:57:13 +00:00
HexagonBitTracker.cpp [Hexagon] Capture aggregate variables by reference, not value 2015-10-20 19:33:46 +00:00
HexagonBitTracker.h [Hexagon] Move BitTracker into the llvm namespace and remove redundant qualifications 2015-07-13 20:38:16 +00:00
HexagonCallingConv.td Hexagon V5 FP Support. 2012-05-10 20:20:25 +00:00
HexagonCFGOptimizer.cpp Hexagon: Remove implicit ilist iterator conversions, NFC 2015-10-20 00:46:39 +00:00
HexagonCommonGEP.cpp Hexagon: Remove implicit ilist iterator conversions, NFC 2015-10-20 00:46:39 +00:00
HexagonCopyToCombine.cpp [Hexagon] Moving pass declarations out of header and in to implementation files. Removing unused function getSubtargetInfo from HexagonMCCodeEmitter.cpp Removing deletion of copy construction and assignment operator since parent already deletes it. 2015-06-15 19:05:35 +00:00
HexagonEarlyIfConv.cpp Hexagon: Remove implicit ilist iterator conversions, NFC 2015-10-20 00:46:39 +00:00
HexagonExpandCondsets.cpp [Hexagon] Add missing preamble to a source file 2015-07-09 15:40:25 +00:00
HexagonExpandPredSpillCode.cpp Hexagon: Remove implicit ilist iterator conversions, NFC 2015-10-20 00:46:39 +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: Remove implicit ilist iterator conversions, NFC 2015-10-20 00:46:39 +00:00
HexagonFrameLowering.h Add missing override noticed by Clang's -Winconsistent-missing-override. 2015-10-19 18:41:23 +00:00
HexagonGenExtract.cpp Hexagon: Remove implicit ilist iterator conversions, NFC 2015-10-20 00:46:39 +00:00
HexagonGenInsert.cpp -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
HexagonGenMux.cpp [Hexagon] Generate MUX from conditional transfers when dot-new not possible 2015-07-20 21:23:25 +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] Reapply r239097 with tests corrected for shuffling and duplexing. 2015-06-05 16:00:11 +00:00
HexagonInstrFormatsV60.td [Hexagon] Adding skeleton of HVX extension instructions. 2015-10-17 01:33:04 +00:00
HexagonInstrInfo.cpp [Hexagon] Change Based->Base in getBasedWithImmOffset 2015-10-20 19:21:05 +00:00
HexagonInstrInfo.h Pass BranchProbability/BlockMass by value instead of const& as they are small. NFC. 2015-09-10 23:10:42 +00:00
HexagonInstrInfo.td [Hexagon] Adding instruction aliases and tests. 2015-11-10 01:58:26 +00:00
HexagonInstrInfoV3.td [Hexagon] Removing v2-4 flags. V4 is the minimum supported version. 2015-02-09 21:07:35 +00:00
HexagonInstrInfoV4.td [Hexagon] Fixing store instructions and reenabling a few more tests. 2015-11-10 00:22:00 +00:00
HexagonInstrInfoV5.td Eliminate constant-extender profitability checks from Hexagon isel 2015-03-12 00:19:59 +00:00
HexagonInstrInfoV60.td [Hexagon] Adding skeleton of HVX extension instructions. 2015-10-17 01:33:04 +00:00
HexagonInstrInfoVector.td [Hexagon] Add support for vector instructions 2015-03-19 16:33:08 +00:00
HexagonIntrinsics.td [Hexagon] Remove the remnants of isConstExtProfitable 2015-10-20 19:04:53 +00:00
HexagonIntrinsicsDerived.td [Hexagon] Deleting a lot of old variants of intrinsics and updating references. 2015-01-28 18:29:11 +00:00
HexagonIntrinsicsV3.td [Hexagon] Converting XTYPE/SHIFT intrinsics. Cleaning out old intrinsic patterns and updating tests. 2015-02-03 20:40:52 +00:00
HexagonIntrinsicsV4.td Eliminate constant-extender profitability checks from Hexagon isel 2015-03-12 00:19:59 +00:00
HexagonIntrinsicsV5.td [Hexagon] Converting XTYPE/SHIFT intrinsics. Cleaning out old intrinsic patterns and updating tests. 2015-02-03 20:40:52 +00:00
HexagonISelDAGToDAG.cpp [Hexagon] Remove the remnants of isConstExtProfitable 2015-10-20 19:04:53 +00:00
HexagonISelLowering.cpp [WinEH] Update exception pointer registers 2015-11-07 01:11:31 +00:00
HexagonISelLowering.h [WinEH] Update exception pointer registers 2015-11-07 01:11:31 +00:00
HexagonIsetDx.td [Hexagon] Reapply r239097 with tests corrected for shuffling and duplexing. 2015-06-05 16:00:11 +00:00
HexagonMachineFunctionInfo.cpp [weak vtables] Remove a bunch of weak vtables 2013-11-19 00:57:56 +00:00
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] 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
HexagonNewValueJump.cpp Hexagon: Remove implicit ilist iterator conversions, NFC 2015-10-20 00:46:39 +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
HexagonRegisterInfo.cpp [Hexagon] Fix debug information for local objects 2015-10-19 18:30:27 +00:00
HexagonRegisterInfo.h Targets: commonize some stack realignment code 2015-07-20 22:51:32 +00:00
HexagonRegisterInfo.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
HexagonSchedule.td [Hexagon] Adding skeleton of HVX extension instructions. 2015-10-17 01:33:04 +00:00
HexagonScheduleV4.td [Hexagon] Adding skeleton of HVX extension instructions. 2015-10-17 01:33:04 +00:00
HexagonScheduleV55.td [Hexagon] Adding skeleton of HVX extension instructions. 2015-10-17 01:33:04 +00:00
HexagonScheduleV60.td [Hexagon] Adding skeleton of HVX extension instructions. 2015-10-17 01:33:04 +00:00
HexagonSelectCCInfo.td
HexagonSelectionDAGInfo.cpp Remove getDataLayout() from TargetSelectionDAGInfo (had no users) 2015-07-09 02:10:08 +00:00
HexagonSelectionDAGInfo.h Remove getDataLayout() from TargetSelectionDAGInfo (had no users) 2015-07-09 02:10:08 +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 Revert r247692: Replace Triple with a new TargetTuple in MCTargetDesc/* and related. NFC. 2015-09-15 16:17:27 +00:00
HexagonSubtarget.h [Hexagon] Adding skeleton of HVX extension instructions. 2015-10-17 01:33:04 +00:00
HexagonTargetMachine.cpp [Hexagon] Bit-based instruction simplification 2015-10-20 22:57:13 +00:00
HexagonTargetMachine.h [Hexagon] Implement TargetTransformInfo for Hexagon 2015-08-05 18:35:37 +00:00
HexagonTargetObjectFile.cpp Move most user of TargetMachine::getDataLayout to the Module one 2015-07-16 06:11:10 +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 Fix build problme introduced in r251883 2015-11-03 02:19:07 +00:00
LLVMBuild.txt [Hexagon] Adding LLVMBuild.txt reference to HexagonAsmParser. 2015-11-09 04:31:02 +00:00
Makefile [Hexagon] Removing extra gen line. 2015-11-09 05:31:39 +00:00