Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | [Hexagon] Change iconst to emit 27bit relocation | Krzysztof Parzyszek | 2017-05-02 | 1 | -4/+4 |
| | | | | | | Patch by Colin LeMahieu. llvm-svn: 301956 | ||||
* | [Hexagon] Formatting changes, NFC | Krzysztof Parzyszek | 2017-05-02 | 1 | -0/+6 |
| | | | | llvm-svn: 301953 | ||||
* | [Hexagon] Remove unused validSubtarget TSFlags | Krzysztof Parzyszek | 2017-05-02 | 1 | -19/+0 |
| | | | | | | Patch by Colin LeMahieu. llvm-svn: 301952 | ||||
* | [Hexagon] Add new packet iterator which will iterate through duplexes | Krzysztof Parzyszek | 2017-05-02 | 1 | -8/+51 |
| | | | | | | Patch by Colin LeMahieu. llvm-svn: 301945 | ||||
* | [Hexagon] Replace CVI_VM_CUR_LD type with CVI_VM_LD | Krzysztof Parzyszek | 2017-05-01 | 1 | -0/+5 |
| | | | | | | | | A .cur instruction can be identified by checking isCVINew() && mayLoad(). Patch by Colin LeMahieu. llvm-svn: 301829 | ||||
* | [Hexagon] Improve shuffle error reporting | Krzysztof Parzyszek | 2017-05-01 | 1 | -3/+3 |
| | | | | | | Patch by Colin LeMahieu. llvm-svn: 301823 | ||||
* | [Hexagon] Replace instruction definitions with auto-generated ones | Krzysztof Parzyszek | 2017-02-10 | 1 | -17/+2 |
| | | | | llvm-svn: 294753 | ||||
* | [Hexagon] Address ASAN and UBSAN failures after r294226 | Krzysztof Parzyszek | 2017-02-07 | 1 | -9/+7 |
| | | | | | | Reinstate r294256 with a fix. llvm-svn: 294269 | ||||
* | Revert "[Hexagon] Address ASAN and UBSAN failures after r294226" | Krzysztof Parzyszek | 2017-02-06 | 1 | -7/+9 |
| | | | | | | | This reverts commit r294256. It seems to be causing more problems instead of solving them. llvm-svn: 294259 | ||||
* | [Hexagon] Address ASAN and UBSAN failures after r294226 | Krzysztof Parzyszek | 2017-02-06 | 1 | -9/+7 |
| | | | | llvm-svn: 294256 | ||||
* | [Hexagon] Update MCTargetDesc | Krzysztof Parzyszek | 2017-02-06 | 1 | -129/+157 |
| | | | | | | | | | | Changes include: - Updates to the instruction descriptor flags. - Improvements to the packet shuffler and checker. - Updates to the handling of certain relocations. - Better handling of duplex instructions. llvm-svn: 294226 | ||||
* | [Hexagon] Adding opExtentBits and opExtentAlign to GPrel instructions | Krzysztof Parzyszek | 2017-02-02 | 1 | -9/+11 |
| | | | | | | Patch by Colin LeMahieu. llvm-svn: 293933 | ||||
* | [Hexagon] Remove A4_ext_* pseudo instructions | Krzysztof Parzyszek | 2017-02-02 | 1 | -12/+6 |
| | | | | | | Patch by Colin LeMahieu. llvm-svn: 293929 | ||||
* | [Hexagon] Rename TypeCOMPOUND to TypeCJ | Krzysztof Parzyszek | 2017-02-02 | 1 | -2/+2 |
| | | | | llvm-svn: 293894 | ||||
* | [Hexagon] Adding change of flow max 1 (cofMax1) TS flag for marking this ↵ | Colin LeMahieu | 2016-10-08 | 1 | -0/+5 |
| | | | | | | restriction rather than implying it from TypeJR. llvm-svn: 283665 | ||||
* | [Hexagon] NFC Removing 'V4_' prefix from duplex instruction names. | Colin LeMahieu | 2016-10-07 | 1 | -52/+52 |
| | | | | llvm-svn: 283514 | ||||
* | Use StringRef instead of raw pointers in MCAsmInfo/MCInstrInfo APIs (NFC) | Mehdi Amini | 2016-10-01 | 1 | -1/+1 |
| | | | | llvm-svn: 283018 | ||||
* | [Hexagon] Handle double-vector registers as new-value producers | Krzysztof Parzyszek | 2016-04-28 | 1 | -0/+13 |
| | | | | | | Patch by Colin LeMahieu. llvm-svn: 267897 | ||||
* | [Hexagon] Properly encode registers in duplex instructions | Krzysztof Parzyszek | 2016-03-21 | 1 | -0/+109 |
| | | | | llvm-svn: 263980 | ||||
* | [Hexagon] Modifying r262258 to only be in effect in the hand assembler path, ↵ | Colin LeMahieu | 2016-03-01 | 1 | -14/+2 |
| | | | | | | not the integrated assembler. llvm-svn: 262400 | ||||
* | [Hexagon] As a size optimization, not lazy extending TPREL or DTPREL ↵ | Colin LeMahieu | 2016-02-29 | 1 | -8/+14 |
| | | | | | | variants since they're usually in range. llvm-svn: 262258 | ||||
* | [Hexagon] Using MustExtend flag on expression instead of passing around bools. | Colin LeMahieu | 2016-02-29 | 1 | -9/+11 |
| | | | | llvm-svn: 262238 | ||||
* | [Hexagon] Replacing reference/dereference with reference cast. | Colin LeMahieu | 2016-02-17 | 1 | -4/+4 |
| | | | | llvm-svn: 261133 | ||||
* | [Hexagon] cast<> a reference instead of referencing + dereferencing. | Benjamin Kramer | 2016-02-17 | 1 | -1/+1 |
| | | | | llvm-svn: 261077 | ||||
* | [Hexagon] Adding relocation for code size, cold path optimization allowing a ↵ | Colin LeMahieu | 2016-02-16 | 1 | -0/+12 |
| | | | | | | | | | | | | 23-bit 4-byte aligned relocation to be a valid instruction encoding. The usual way to get a 32-bit relocation is to use a constant extender which doubles the size of the instruction, 4 bytes to 8 bytes. Another way is to put a .word32 and mix code and data within a function. The disadvantage is it's not a valid instruction encoding and jumping over it causes prefetch stalls inside the hardware. This relocation packs a 23-bit value in to an "r0 = add(rX, #a)" instruction by overwriting the source register bits. Since r0 is the return value register, if this instruction is placed after a function call which return void, r0 will be filled with an undefined value, the prefetch won't be confused, and the callee can access the constant value by way of the link register. llvm-svn: 261006 | ||||
* | [Hexagon] Hoist nonnull assert up. | Benjamin Kramer | 2016-02-16 | 1 | -0/+1 |
| | | | | | | | | Once a pointer is turned into a reference it cannot be nullptr, clang rightfully warns about this assert being a tautology. Put the assert before the reference is created. llvm-svn: 260949 | ||||
* | [NFC] Fixing naming convention, lowercase start of function name. | Colin LeMahieu | 2016-02-15 | 1 | -1/+1 |
| | | | | llvm-svn: 260903 | ||||
* | [Hexagon] Wrapping all MCExprs inside MCOperands within HexagonMCExpr to ↵ | Colin LeMahieu | 2016-02-15 | 1 | -1/+26 |
| | | | | | | simplify handling and allow flags on the expression. llvm-svn: 260902 | ||||
* | Use make_range to reduce mentions of iterator type. NFC | Craig Topper | 2015-12-06 | 1 | -2/+1 |
| | | | | llvm-svn: 254872 | ||||
* | [Hexagon] Factoring bundle creation in to a utility function. | Colin LeMahieu | 2015-11-13 | 1 | -0/+7 |
| | | | | llvm-svn: 253056 | ||||
* | [Hexagon] Fixing leak in padEndloop by allocating in MCContext. | Colin LeMahieu | 2015-11-13 | 1 | -3/+3 |
| | | | | llvm-svn: 253019 | ||||
* | [Hexagon] Allocate MCInst in the MCContext to avoid leaking it. | Benjamin Kramer | 2015-11-12 | 1 | -4/+6 |
| | | | | | | Found by leaksanitizer. llvm-svn: 252931 | ||||
* | [Hexagon] Fixing load instruction parsing and reenabling tests. | Colin LeMahieu | 2015-11-10 | 1 | -4/+5 |
| | | | | llvm-svn: 252555 | ||||
* | [Hexagon] Enabling ASM parsing on Hexagon backend and adding instruction ↵ | Colin LeMahieu | 2015-11-09 | 1 | -14/+189 |
| | | | | | | parsing tests. General updating of the code emission. llvm-svn: 252443 | ||||
* | Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) | Alexander Kornienko | 2015-06-23 | 1 | -1/+1 |
| | | | | | | Apparently, the style needs to be agreed upon first. llvm-svn: 240390 | ||||
* | Fixed/added namespace ending comments using clang-tidy. NFC | Alexander Kornienko | 2015-06-19 | 1 | -1/+1 |
| | | | | | | | | | | | | | The patch is generated using this command: tools/clang/tools/extra/clang-tidy/tool/run-clang-tidy.py -fix \ -checks=-*,llvm-namespace-comment -header-filter='llvm/.*|clang/.*' \ llvm/lib/ Thanks to Eugene Kosov for the original patch! llvm-svn: 240137 | ||||
* | [Hexagon] Adding MC ELF streamer and updating addend relocation test which ↵ | Colin LeMahieu | 2015-06-17 | 1 | -0/+15 |
| | | | | | | shows correct ELF symbol. llvm-svn: 239876 | ||||
* | [Hexagon] Reapply r239097 with tests corrected for shuffling and duplexing. | Colin LeMahieu | 2015-06-05 | 1 | -0/+68 |
| | | | | llvm-svn: 239161 | ||||
* | Revert r239095 incorrect test tree. | Colin LeMahieu | 2015-06-04 | 1 | -68/+0 |
| | | | | llvm-svn: 239102 | ||||
* | [Hexagon] Adding functionality for duplexing. Duplexing is a way to ↵ | Colin LeMahieu | 2015-06-04 | 1 | -0/+68 |
| | | | | | | compress commonly used pairs of instructions in order to reduce code size. The test case duplex.ll normally would be 8 bytes, assign register to 0 and jump to link register. After duplexing this is only 4 bytes. This also tests the HexagonMCShuffler code path which is used to make sure duplexed instructions still follow slot requirements. llvm-svn: 239095 | ||||
* | [Hexagon] Adding MC packet shuffler. | Colin LeMahieu | 2015-05-31 | 1 | -5/+77 |
| | | | | llvm-svn: 238692 | ||||
* | [Hexagon] Adding basic relaxation functionality. | Colin LeMahieu | 2015-05-30 | 1 | -0/+24 |
| | | | | llvm-svn: 238660 | ||||
* | [Hexagon] Disassembling, printing, and emitting instructions a whole-bundle ↵ | Colin LeMahieu | 2015-05-29 | 1 | -34/+71 |
| | | | | | | 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. llvm-svn: 238556 | ||||
* | MC: Modernize MCOperand API naming. NFC. | Jim Grosbach | 2015-05-13 | 1 | -2/+2 |
| | | | | | | MCOperand::Create*() methods renamed to MCOperand::create*(). llvm-svn: 237275 | ||||
* | [Hexagon] Adding expression MC emission and removing XFAIL from test that ↵ | Colin LeMahieu | 2015-05-01 | 1 | -0/+25 |
| | | | | | | hits this code path. llvm-svn: 236348 | ||||
* | [Hexagon] Moving remaining methods off of HexagonMCInst in to ↵ | Colin LeMahieu | 2015-02-19 | 1 | -6/+48 |
| | | | | | | HexagonMCInstrInfo and eliminating HexagonMCInst class. llvm-svn: 229914 | ||||
* | [Hexagon] Moving more functions off of HexagonMCInst and in to ↵ | Colin LeMahieu | 2015-02-19 | 1 | -1/+145 |
| | | | | | | HexagonMCInstrInfo. llvm-svn: 229903 | ||||
* | [Hexagon] Creating HexagonMCInstrInfo namespace as landing zone for static ↵ | Colin LeMahieu | 2015-02-19 | 1 | -0/+37 |
functions detached from HexagonMCInst. llvm-svn: 229885 |