llvm-6502/lib/Target/Hexagon
JF Bastien 99cb989593 Target RegisterInfo: devirtualize TargetFrameLowering
Summary:
The target frame lowering's concrete type is always known in RegisterInfo, yet it's only sometimes devirtualized through a static_cast. This change adds an auto-generated static function <Target>GenRegisterInfo::getFrameLowering(const MachineFunction &MF) which does this devirtualization, and uses this function in all targets which can.

This change was suggested by sunfish in D11070 for WebAssembly, I figure that I may as well improve the other targets while I'm here.

Subscribers: sunfish, ted, llvm-commits, jfb

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241921 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-10 18:13:17 +00:00
..
Disassembler Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
MCTargetDesc Change the last few internal StringRef triples into Triple objects. 2015-07-06 16:56:07 +00:00
TargetInfo
BitTracker.cpp [Hexagon] Fix unused variable warnings in NDEBUG build caused by r241595 2015-07-07 16:02:11 +00:00
BitTracker.h [Hexagon] Implement bit-tracking facility with specifics for Hexagon 2015-07-07 15:16:42 +00:00
CMakeLists.txt [Hexagon] Implement commoning of GetElementPtr instructions 2015-07-08 19:22:28 +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 Make the Hexagon ISelDAGToDAG pass set the subtarget dynamically 2015-03-21 03:12:59 +00:00
HexagonAsmPrinter.cpp MC: Add target hook to control symbol quoting 2015-06-09 00:31:39 +00:00
HexagonAsmPrinter.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
HexagonBitTracker.cpp [Hexagon] Fix unused variable warnings in NDEBUG build caused by r241595 2015-07-07 16:02:11 +00:00
HexagonBitTracker.h [Hexagon] Implement bit-tracking facility with specifics for Hexagon 2015-07-07 15:16:42 +00:00
HexagonCallingConv.td
HexagonCFGOptimizer.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
HexagonCommonGEP.cpp [Hexagon] Implement commoning of GetElementPtr instructions 2015-07-08 19:22:28 +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
HexagonExpandCondsets.cpp [Hexagon] Add missing preamble to a source file 2015-07-09 15:40:25 +00:00
HexagonExpandPredSpillCode.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +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 Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
HexagonFrameLowering.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
HexagonGenInsert.cpp [Hexagon] Generate "insert" instructions more aggressively 2015-07-08 14:47:34 +00:00
HexagonHardwareLoops.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
HexagonInstrFormats.td [Hexagon] Disassembling, printing, and emitting instructions a whole-bundle at a time which is the semantic unit for Hexagon. Fixing tests to use the new format. Disabling tests in the direct object emission path for a followup patch. 2015-05-29 14:44:13 +00:00
HexagonInstrFormatsV4.td [Hexagon] Reapply r239097 with tests corrected for shuffling and duplexing. 2015-06-05 16:00:11 +00:00
HexagonInstrInfo.cpp [CodeGen] ArrayRef'ize cond/pred in various TII APIs. NFC. 2015-06-11 19:30:37 +00:00
HexagonInstrInfo.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
HexagonInstrInfo.td Reapply r235977 "[DebugInfo] Add debug locations to constant SD nodes" 2015-04-28 14:05:47 +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] Reapply r239097 with tests corrected for shuffling and duplexing. 2015-06-05 16:00:11 +00:00
HexagonInstrInfoV5.td Eliminate constant-extender profitability checks from Hexagon isel 2015-03-12 00:19:59 +00:00
HexagonInstrInfoVector.td [Hexagon] Add support for vector instructions 2015-03-19 16:33:08 +00:00
HexagonIntrinsics.td [Hexagon] Making intrinsic tests agnostic to register allocation. Narrowing intrinsic parameters to appropriate width. 2015-06-12 19:57:32 +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] Making intrinsic tests agnostic to register allocation. Narrowing intrinsic parameters to appropriate width. 2015-06-12 19:57:32 +00:00
HexagonISelLowering.cpp [Hexagon] Add support for atomic RMW operations 2015-07-09 14:51:21 +00:00
HexagonISelLowering.h [Hexagon] Add support for atomic RMW operations 2015-07-09 14:51:21 +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 Move HexagonMachineScheduler to use the subtarget off of the 2015-02-02 22:11:40 +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 MC: Clean up MCExpr naming. NFC. 2015-05-30 01:25:56 +00:00
HexagonNewValueJump.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
HexagonOperands.td [Hexagon] Making intrinsic tests agnostic to register allocation. Narrowing intrinsic parameters to appropriate width. 2015-06-12 19:57:32 +00:00
HexagonPeephole.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
HexagonRegisterInfo.cpp Target RegisterInfo: devirtualize TargetFrameLowering 2015-07-10 18:13:17 +00:00
HexagonRegisterInfo.h [Hexagon] Shrink-wrap stack frame (Hexagon-specific) 2015-04-23 16:05:39 +00:00
HexagonRegisterInfo.td [Hexagon] Adding vector shift instructions and tests. 2015-01-30 21:58:46 +00:00
HexagonRemoveSZExtArgs.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
HexagonSchedule.td [Hexagon] Add new InstrItinClass to support timing classes. 2014-05-08 18:47:08 +00:00
HexagonScheduleV4.td [Hexagon] Add new InstrItinClass to support timing classes. 2014-05-08 18:47:08 +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 Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
HexagonSubtarget.cpp Remove getDataLayout() from TargetSelectionDAGInfo (had no users) 2015-07-09 02:10:08 +00:00
HexagonSubtarget.h Replace string GNU Triples with llvm::Triple in MCSubtargetInfo and create*MCSubtargetInfo(). NFC. 2015-06-10 12:11:26 +00:00
HexagonTargetMachine.cpp [Hexagon] Add support for atomic RMW operations 2015-07-09 14:51:21 +00:00
HexagonTargetMachine.h Replace string GNU Triples with llvm::Triple in TargetMachine. NFC. 2015-06-11 19:41:26 +00:00
HexagonTargetObjectFile.cpp Move alignment from MCSectionData to MCSection. 2015-05-21 19:20:38 +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
HexagonVLIWPacketizer.cpp [Hexagon] Use MF reference from parent class in HexagonPacketizerList 2015-06-23 13:50:23 +00:00
LLVMBuild.txt Add missing dependency to Hexagon target. 2015-07-08 21:13:37 +00:00
Makefile Prune CRLFs. 2015-05-25 01:43:23 +00:00