Colin LeMahieu
8ed1aee9dd
[Hexagon] NFC Removing 'V4_' prefix from duplex instruction names.
...
llvm-svn: 283514
2016-10-07 00:15:07 +00:00
Krzysztof Parzyszek
0b8672269c
[Hexagon] Make p0 an explicit operand in VA1_clr* subinstructions, NFC
...
llvm-svn: 279255
2016-08-19 15:17:19 +00:00
Krzysztof Parzyszek
6421b934ec
[Hexagon] Mark PS_jumpret as pseudo-instruction, expand it into J2_jumpr
...
llvm-svn: 279241
2016-08-19 14:04:45 +00:00
Krzysztof Parzyszek
be976d4ea9
[Hexagon] Standardize pseudo-instructions for calls and returns
...
- CALLv3nr PS_call_nr
- CALLRv3nr PS_callr_nr
- CALLstk PS_call_stk
- TCRETURNi PS_tailcall_i
- TCRETURNr PS_tailcall_r
- JMPret PS_jmpret
- JMPrett PS_jmprett
- JMPretf PS_jmpretf
- JMPrettnew PS_jmprettnew
- JMPretfnew PS_jmpretfnew
- JMPrettnewpt PS_jmprettnewpt
- JMPretfnewpt PS_jmpretfnewpt
llvm-svn: 278499
2016-08-12 11:12:02 +00:00
Benjamin Kramer
4d9d2cc77f
[Hexagon] Create global std::map lazily.
...
This could of course be a simple binary search with no global state
involved at all if someone cares enough. Just don't make everyone
linking the hexagon backend pay for it on process startup and shutdown.
llvm-svn: 274437
2016-07-02 13:05:12 +00:00
Craig Topper
ddc76f2bed
[Hexagon] Use std::begin() and std::end() instead of doing the same manually. NFC
...
llvm-svn: 254385
2015-12-01 06:13:10 +00:00
Colin LeMahieu
7cd0892729
[Hexagon] Enabling ASM parsing on Hexagon backend and adding instruction parsing tests. General updating of the code emission.
...
llvm-svn: 252443
2015-11-09 04:07:48 +00:00
Craig Topper
2626094fa1
Make a bunch of static arrays const.
...
llvm-svn: 250642
2015-10-18 05:15:34 +00:00
Eric Christopher
c30eae4567
Remove duplicate conditional in if-stmt.
...
Fixes PR23839.
llvm-svn: 239751
2015-06-15 20:16:53 +00:00
Colin LeMahieu
be8c453d58
[Hexagon] Reapply r239097 with tests corrected for shuffling and duplexing.
...
llvm-svn: 239161
2015-06-05 16:00:11 +00:00
Colin LeMahieu
c40be85adc
Revert r239095 incorrect test tree.
...
llvm-svn: 239102
2015-06-04 21:32:42 +00:00
Colin LeMahieu
fc52c11d80
[Hexagon] Adding functionality for duplexing. Duplexing is a way to 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
2015-06-04 21:16:16 +00:00