Krzysztof Parzyszek
a0ea73c9af
[scan-build] fix dead store warnings emitted on LLVM Hexagon code base
...
Patch by Apelete Seketeli.
Differential Revision: http://reviews.llvm.org/D19900
llvm-svn: 269415
2016-05-13 13:13:59 +00:00
Krzysztof Parzyszek
e737b86f8c
[Hexagon] Handle double-vector registers as new-value producers
...
Patch by Colin LeMahieu.
llvm-svn: 267897
2016-04-28 15:54:48 +00:00
Colin LeMahieu
a3782da3e3
[Hexagon] Merging nops in to previous packet rather than always creating a new one.
...
llvm-svn: 267798
2016-04-27 21:37:44 +00:00
Krzysztof Parzyszek
3e28229000
[Hexagon] Few fixes for exception handling
...
llvm-svn: 267469
2016-04-25 21:05:19 +00:00
Krzysztof Parzyszek
e6ee481bdf
[Hexagon] Correctly set "Flags" in ELF header
...
llvm-svn: 267397
2016-04-25 12:49:47 +00:00
Craig Topper
855d182656
Fix a couple assertions that can never fire because they just contained the text string which always evaluates to true. Add a ! so they'll evaluate to false.
...
llvm-svn: 267312
2016-04-24 02:01:25 +00:00
Krzysztof Parzyszek
64d4e2bc0d
[Hexagon] Add -mv.. options to override CPU selection
...
This is for compatibility with scripts that use -mv5, etc. with the
assembler.
llvm-svn: 266918
2016-04-20 21:17:40 +00:00
Krzysztof Parzyszek
5626703837
[Hexagon] Fix handling of lcomm directive
...
Patch by Colin LeMahieu.
llvm-svn: 266882
2016-04-20 15:54:13 +00:00
Mehdi Amini
b550cb1750
[NFC] Header cleanup
...
Removed some unused headers, replaced some headers with forward class declarations.
Found using simple scripts like this one:
clear && ack --cpp -l '#include "llvm/ADT/IndexedMap.h"' | xargs grep -L 'IndexedMap[<]' | xargs grep -n --color=auto 'IndexedMap'
Patch by Eugene Kosov <claprix@yandex.ru>
Differential Revision: http://reviews.llvm.org/D19219
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 266595
2016-04-18 09:17:29 +00:00
Krzysztof Parzyszek
b14f4fd0de
[Hexagon] Add handling fixups and instruction relaxation
...
llvm-svn: 263981
2016-03-21 20:27:17 +00:00
Krzysztof Parzyszek
c6f1e1a709
[Hexagon] Properly encode registers in duplex instructions
...
llvm-svn: 263980
2016-03-21 20:13:33 +00:00
Colin LeMahieu
5cb6eea664
[Hexagon] Modifying r262258 to only be in effect in the hand assembler path, not the integrated assembler.
...
llvm-svn: 262400
2016-03-01 21:37:41 +00:00
Colin LeMahieu
ab9eca4d9f
[Hexagon] As a size optimization, not lazy extending TPREL or DTPREL variants since they're usually in range.
...
llvm-svn: 262258
2016-02-29 21:21:56 +00:00
Colin LeMahieu
9e5a9c32db
[Hexagon] Missed member initialization causing ubsan failure.
...
llvm-svn: 262252
2016-02-29 20:42:25 +00:00
Colin LeMahieu
b9f1eae328
[Hexagon] Setting sign mismatch flag on expression instead of using bit tricks.
...
llvm-svn: 262243
2016-02-29 19:17:56 +00:00
Colin LeMahieu
73cd686ce1
[Hexagon] Using MustExtend flag on expression instead of passing around bools.
...
llvm-svn: 262238
2016-02-29 18:39:51 +00:00
Chad Rosier
c00ab4f27d
[Hexagon] Remove redundant check.
...
llvm-svn: 261232
2016-02-18 17:49:57 +00:00
Krzysztof Parzyszek
7a737d1abb
[Hexagon] Implement TLS support
...
Patch by Anand Kodnani.
llvm-svn: 261218
2016-02-18 15:42:57 +00:00
Colin LeMahieu
5e552d141f
[Hexagon] Replacing reference/dereference with reference cast.
...
llvm-svn: 261133
2016-02-17 18:50:21 +00:00
Benjamin Kramer
98520ca73b
[Hexagon] cast<> a reference instead of referencing + dereferencing.
...
llvm-svn: 261077
2016-02-17 09:28:45 +00:00
Colin LeMahieu
ecef1d9cbc
[Hexagon] Adding relocation for code size, cold path optimization allowing a 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
2016-02-16 20:38:17 +00:00
Benjamin Kramer
986a49b036
[Hexagon] Hoist nonnull assert up.
...
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
2016-02-16 09:53:47 +00:00
Colin LeMahieu
c7b2124d49
[NFC] Fixing naming convention, lowercase start of function name.
...
llvm-svn: 260903
2016-02-15 18:47:55 +00:00
Colin LeMahieu
98c8e070b9
[Hexagon] Wrapping all MCExprs inside MCOperands within HexagonMCExpr to simplify handling and allow flags on the expression.
...
llvm-svn: 260902
2016-02-15 18:42:07 +00:00
Colin LeMahieu
0e05192d49
[MC] Merge VK_PPC_TPREL in to generic VK_TPREL.
...
Differential Revision: http://reviews.llvm.org/D17038
llvm-svn: 260401
2016-02-10 18:32:01 +00:00
Colin LeMahieu
1c79d9be6e
[Hexagon] Fixing relocation generation and adding tests.
...
llvm-svn: 260259
2016-02-09 19:18:02 +00:00
Chris Bieneman
e49730d4ba
Remove autoconf support
...
Summary:
This patch is provided in preparation for removing autoconf on 1/26. The proposal to remove autoconf on 1/26 was discussed on the llvm-dev thread here: http://lists.llvm.org/pipermail/llvm-dev/2016-January/093875.html
"I felt a great disturbance in the [build system], as if millions of [makefiles] suddenly cried out in terror and were suddenly silenced. I fear something [amazing] has happened."
- Obi Wan Kenobi
Reviewers: chandlerc, grosbach, bob.wilson, tstellarAMD, echristo, whitequark
Subscribers: chfast, simoncook, emaste, jholewinski, tberghammer, jfb, danalbert, srhines, arsenm, dschuff, jyknight, dsanders, joker.eph, llvm-commits
Differential Revision: http://reviews.llvm.org/D16471
llvm-svn: 258861
2016-01-26 21:29:08 +00:00
Rafael Espindola
8340f94df1
Convert a few assert failures into proper errors.
...
Fixes PR25944.
llvm-svn: 257697
2016-01-13 22:56:57 +00:00
Krzysztof Parzyszek
bc17b68a47
[Hexagon] Add check for nullptr in getFixupNoBits
...
llvm-svn: 257338
2016-01-11 15:51:53 +00:00
Tobias Edler von Koch
ccd3bfc3c8
[Hexagon] Replace a static member variable in HexagonCVIResource (NFC)
...
This creates one instance of TUL per HexagonShuffler, which avoids thread-safety
issues with future changes.
llvm-svn: 257215
2016-01-08 22:07:25 +00:00
Krzysztof Parzyszek
21dc8bdd9e
[Hexagon] Add PIC support
...
llvm-svn: 256025
2015-12-18 20:19:30 +00:00
Krzysztof Parzyszek
759a7d0ed7
[Hexagon] Subtarget features/default CPU corrections
...
llvm-svn: 255501
2015-12-14 15:03:54 +00:00
Craig Topper
15576e1c8f
Use make_range to reduce mentions of iterator type. NFC
...
llvm-svn: 254872
2015-12-06 05:08:07 +00:00
Craig Topper
5c32279bee
[Hexagon] Don't call getNumImplicitDefs and then iterate over the count. getNumImplicitDefs contains a loop so its better to just loop over the null terminated implicit def list. NFC
...
llvm-svn: 254852
2015-12-05 17:34:07 +00:00
Craig Topper
e5e035a3a8
Replace uint16_t with the MCPhysReg typedef in many places. A lot of physical register arrays already use this typedef.
...
llvm-svn: 254843
2015-12-05 07:13:35 +00:00
Colin LeMahieu
15ca65c253
[Hexagon] Adding shuffling resources for HVX instructions and tests for instruction encodings.
...
llvm-svn: 254652
2015-12-03 21:44:28 +00:00
Krzysztof Parzyszek
25ddd2c9e8
[Hexagon] Fix instruction descriptor flags for memory access size
...
llvm-svn: 254613
2015-12-03 15:41:33 +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
e6241798c9
[Hexagon] NFC Reordering headers.
...
llvm-svn: 254307
2015-11-30 17:32:34 +00:00
Krzysztof Parzyszek
b9a1c3a32c
[Hexagon] Bring HexagonInstrInfo up to date
...
llvm-svn: 253986
2015-11-24 14:55:26 +00:00
Tilmann Scheller
bfd7ce01ea
[Hexagon] Remove redundant local variable.
...
Identified by the Clang static analyzer.
llvm-svn: 253660
2015-11-20 12:10:17 +00:00
Colin LeMahieu
655489433c
[Hexagon] Fixing memory leak during relaxation by allocating MCInst in MCContext.
...
llvm-svn: 253090
2015-11-13 21:45:50 +00:00
Colin LeMahieu
f0af6e5243
[Hexagon] Factoring bundle creation in to a utility function.
...
llvm-svn: 253056
2015-11-13 17:42:46 +00:00
Colin LeMahieu
b3c97271e3
[Hexagon] Fixing leak in padEndloop by allocating in MCContext.
...
llvm-svn: 253019
2015-11-13 07:58:06 +00:00
Colin LeMahieu
8bb168b160
[Hexagon] Adding relaxation functionality to backend and test.
...
llvm-svn: 252989
2015-11-13 01:12:25 +00:00
Benjamin Kramer
7c576d8bcf
[Hexagon] Allocate MCInst in the MCContext to avoid leaking it.
...
Found by leaksanitizer.
llvm-svn: 252931
2015-11-12 19:30:40 +00:00
Colin LeMahieu
13cc3ab785
[Hexagon] Fixing compound register printing and reenabling more tests.
...
llvm-svn: 252574
2015-11-10 00:51:56 +00:00
Colin LeMahieu
b7a5f9fc29
[Hexagon] Fixing store instructions and reenabling a few more tests.
...
llvm-svn: 252561
2015-11-10 00:22:00 +00:00
Colin LeMahieu
8ab7e8e1b5
[Hexagon] Fixing load instruction parsing and reenabling tests.
...
llvm-svn: 252555
2015-11-10 00:02:27 +00:00
Reid Kleckner
390191dacc
[Hexagon] Fix -Wmicrosoft-enum-value warning with explicit enum type
...
llvm-svn: 252505
2015-11-09 19:44:38 +00:00