llvm/lib/Target/Hexagon
Krzysztof Parzyszek bf390b05bc Hexagon V60/HVX DFA scheduler support
Extended DFA tablegen to:
  - added "-debug-only dfa-emitter" support to llvm-tblgen

  - defined CVI_PIPE* resources for the V60 vector coprocessor

  - allow specification of multiple required resources
    - supports ANDs of ORs
    - e.g. [SLOT2, SLOT3], [CVI_MPY0, CVI_MPY1] means:
           (SLOT2 OR SLOT3) AND (CVI_MPY0 OR CVI_MPY1)

  - added support for combo resources
    - allows specifying ORs of ANDs
    - e.g. [CVI_XLSHF, CVI_MPY01] means:
           (CVI_XLANE AND CVI_SHIFT) OR (CVI_MPY0 AND CVI_MPY1)

  - increased DFA input size from 32-bit to 64-bit
    - allows for a maximum of 4 AND'ed terms of 16 resources

  - supported expressions now include:

    expression     => term [AND term] [AND term] [AND term]
    term           => resource [OR resource]*
    resource       => one_resource | combo_resource
    combo_resource => (one_resource [AND one_resource]*)

Author: Dan Palermo <dpalermo@codeaurora.org>

kparzysz: Verified AMDGPU codegen to be unchanged on all llc
tests, except those dealing with instruction encodings.

Reapply the previous patch, this time without circular dependencies.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253793 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-21 20:00:45 +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] Remove redundant local variable. 2015-11-20 12:10:17 +00:00
TargetInfo
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
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 [Hexagon] Fix the return value from HexagonGenInsert::runOnMachineFunction 2015-11-20 20:46:23 +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 Replace dyn_cast with isa in places that weren't using the returned value for more than a boolean check. NFC. 2015-11-18 07:07:59 +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
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 V60/HVX DFA scheduler support 2015-11-21 20:00:45 +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 Stop producing .data.rel sections. 2015-11-18 06:02:15 +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