Colin LeMahieu
955c4ff9c3
[Hexagon] Factoring classes out of store patterns.
...
llvm-svn: 228602
2015-02-09 20:33:46 +00:00
Colin LeMahieu
ab5a8d6070
[Hexagon] Formatting v5 TD file. Removing commented defs.
...
llvm-svn: 228598
2015-02-09 20:03:42 +00:00
Colin LeMahieu
38e6689276
[Hexagon] Cleaning up definition formatting.
...
llvm-svn: 228593
2015-02-09 19:24:44 +00:00
Colin LeMahieu
6e3e62fd13
[Hexagon] Renaming v4 compare-and-jump instructions.
...
llvm-svn: 228349
2015-02-05 22:03:32 +00:00
Colin LeMahieu
6b3aac8ad9
[Hexagon] Deleting unused patterns.
...
llvm-svn: 228348
2015-02-05 21:43:56 +00:00
Colin LeMahieu
de68b66b4d
[Hexagon] Simplifying and formatting several patterns. Changing a pattern multiply to be expanded.
...
llvm-svn: 228347
2015-02-05 21:13:25 +00:00
Colin LeMahieu
99c5ce1ce4
[Hexagon] Factoring a class out of some store patterns, deleting unused definitions and reformatting some patterns.
...
llvm-svn: 228345
2015-02-05 20:38:58 +00:00
Colin LeMahieu
d40bb5353d
[Hexagon] Factoring out a class for immediate transfers and cleaning up formatting.
...
llvm-svn: 228343
2015-02-05 20:08:52 +00:00
Colin LeMahieu
b882f2b5cf
[Hexagon] Renaming Y2_barrier. Fixing issues where doubleword variants of instructions can't be newvalue producers.
...
llvm-svn: 228330
2015-02-05 18:56:28 +00:00
Colin LeMahieu
27d50073b3
[Hexagon] Renaming A2_subri, A2_andir, A2_orir. Fixing formatting.
...
llvm-svn: 228326
2015-02-05 18:38:08 +00:00
Colin LeMahieu
f297dbed48
[Hexagon] Renaming A2_addi and formatting.
...
llvm-svn: 228318
2015-02-05 17:49:13 +00:00
Colin LeMahieu
a66cf6f2df
[Hexagon] Since decoding conflicts have been resolved, isCodeGenOnly = 0 by default and remove explicitly setting it.
...
llvm-svn: 228316
2015-02-05 17:32:17 +00:00
Colin LeMahieu
ceebe8659b
[Hexagon] Deleting unused instructions and adding isCodeGenOnly to some defs.
...
llvm-svn: 228238
2015-02-05 00:10:16 +00:00
Colin LeMahieu
9cb9078ccf
[Hexagon] Updating load extend to i64 patterns.
...
llvm-svn: 228237
2015-02-04 23:55:16 +00:00
Colin LeMahieu
712d5c393b
[Hexagon] Cleaning up i1 load and extension patterns.
...
llvm-svn: 228232
2015-02-04 23:27:48 +00:00
Colin LeMahieu
90a91bbf43
[Hexagon] Simplifying more load and store patterns and using new addressing patterns.
...
llvm-svn: 228231
2015-02-04 23:23:16 +00:00
Colin LeMahieu
ad13d4e8a6
[Hexagon] Simplifying some load and store patterns.
...
llvm-svn: 228227
2015-02-04 23:10:21 +00:00
Colin LeMahieu
68292c96da
[Hexagon] Converting absolute-address load patterns to use AddrGP.
...
llvm-svn: 228225
2015-02-04 22:54:51 +00:00
Colin LeMahieu
8bf5de10c3
[Hexagon] Converting atomic store/load to use AddrGP addressing.
...
llvm-svn: 228223
2015-02-04 22:40:36 +00:00
Colin LeMahieu
5149135369
[Hexagon] Simplifying some store patterns. Adding AddrGP addressing forms.
...
llvm-svn: 228220
2015-02-04 22:36:28 +00:00
Colin LeMahieu
987b0943c8
[Hexagon] Adding selection for GlobalAddress and converting [z/i]ext load patterns to make use of them.
...
llvm-svn: 228184
2015-02-04 20:38:01 +00:00
Colin LeMahieu
86abe35ceb
[Hexagon] Replacing some load patterns with cleaner versions.
...
llvm-svn: 228169
2015-02-04 19:05:32 +00:00
Colin LeMahieu
f856dcb75e
[Hexagon] Adding missing isCodeGenOnly = 0
...
llvm-svn: 228160
2015-02-04 18:11:32 +00:00
Colin LeMahieu
c0434466e4
[Hexagon] Adding encoding information for absolute-reg mode stores. Xfailing a test until constant extenders are correctly put in the same packet.
...
llvm-svn: 228158
2015-02-04 17:52:06 +00:00
Colin LeMahieu
7d971056ed
[Hexagon] Adding encoding information for absolute-set stores.
...
llvm-svn: 228154
2015-02-04 17:24:04 +00:00
Colin LeMahieu
0eb9727d42
[Hexagon] Adding encoding bits for indirect long load instructions.
...
llvm-svn: 228152
2015-02-04 16:56:46 +00:00
Colin LeMahieu
585316cb41
[Hexagon] Revert change to isCodeGenOnly = 1 in r228080
...
llvm-svn: 228082
2015-02-04 00:09:23 +00:00
Colin LeMahieu
510ba0c661
[Hexagon] Changing some isCodeGenOnly to isAsmParserOnly since we want them to asm parse but not cause decode conflicts.
...
llvm-svn: 228080
2015-02-04 00:07:26 +00:00
Colin LeMahieu
e4101e2c9e
[Hexagon] Marking a bunch of non-encoded instructions with isCodeGenOnly = 1.
...
llvm-svn: 228050
2015-02-03 22:09:51 +00:00
Colin LeMahieu
cd9cb023d7
[Hexagon] Converting XTYPE/SHIFT intrinsics. Cleaning out old intrinsic patterns and updating tests.
...
llvm-svn: 228026
2015-02-03 20:40:52 +00:00
Colin LeMahieu
cf7248bcaf
[Hexagon] Updating XTYPE/PRED intrinsics.
...
llvm-svn: 228019
2015-02-03 19:43:59 +00:00
Colin LeMahieu
e5daf3abfe
[Hexagon] Updating XTYPE/PERM intrinsics.
...
llvm-svn: 228015
2015-02-03 19:36:59 +00:00
Colin LeMahieu
99cc7c1070
[Hexagon] Adding missing vector multiply instruction encodings. Converting multiply intrinsics and updating tests.
...
llvm-svn: 228010
2015-02-03 19:15:11 +00:00
Colin LeMahieu
a6632452be
[Hexagon] Converting complex number intrinsics and adding tests.
...
llvm-svn: 227995
2015-02-03 18:16:28 +00:00
Colin LeMahieu
cdba4e1bcc
[Hexagon] Adding vector intrinsics for alu32/alu and xtype/alu.
...
llvm-svn: 227993
2015-02-03 18:01:45 +00:00
Eric Christopher
36fe028a2a
Only access TLOF via the TargetMachine, not TargetLowering.
...
llvm-svn: 227949
2015-02-03 07:22:52 +00:00
Eric Christopher
8f276db622
Define a runOnMachineFunction for the Hexagon AsmPrinter and
...
use it to initialize the subtarget.
llvm-svn: 227948
2015-02-03 06:40:22 +00:00
Eric Christopher
d5c235dab8
Use the cached subtarget on the MachineFunction.
...
llvm-svn: 227885
2015-02-02 22:40:56 +00:00
Eric Christopher
6905059e80
Remove dead header.
...
llvm-svn: 227884
2015-02-02 22:40:54 +00:00
Eric Christopher
57931fca07
Remove dead code in the HexagonMCInst classes. This also fixes
...
a layering violation in the port and removes calls to getSubtargetImpl.
llvm-svn: 227883
2015-02-02 22:40:53 +00:00
Eric Christopher
d21486dfe0
80-col fixup.
...
llvm-svn: 227882
2015-02-02 22:40:51 +00:00
Eric Christopher
2b7707c07e
Remove dead code in the HexagonMCInst classes. This also fixes
...
a layering violation in the port and removes calls to getSubtargetImpl.
llvm-svn: 227880
2015-02-02 22:28:48 +00:00
Eric Christopher
97a2a39695
80-col fixup.
...
llvm-svn: 227879
2015-02-02 22:28:46 +00:00
Eric Christopher
6098f150a1
Remove unused class variables and update all callers/uses from
...
the HexagonSplitTFRCondSet pass. Use the subtarget off the machine
function at the same time.
llvm-svn: 227878
2015-02-02 22:28:44 +00:00
Eric Christopher
01f875e859
Migrate the HexagonSplitConst32AndConst64 pass from TargetMachine
...
based getSubtarget to the one cached on the MachineFunction.
Remove unused class variables and update all callers/uses.
llvm-svn: 227874
2015-02-02 22:11:43 +00:00
Eric Christopher
0fef34e3fc
Remove #if'd code and update comment.
...
llvm-svn: 227873
2015-02-02 22:11:42 +00:00
Eric Christopher
f8b8e4a3fb
Move HexagonMachineScheduler to use the subtarget off of the
...
MachineFunction and update all uses accordingly including
VLIWResourceModel.
llvm-svn: 227872
2015-02-02 22:11:40 +00:00
Eric Christopher
d737b76b63
Cache and use the subtarget that owns the target lowering.
...
llvm-svn: 227871
2015-02-02 22:11:36 +00:00
Eric Christopher
202f22bbda
Migrate HexagonISelDAGToDAG to setting a subtarget pointer during
...
runOnMachineFunction. Update all uses of the Subtarget accordingly.
llvm-svn: 227840
2015-02-02 19:22:03 +00:00
Eric Christopher
90295c9c63
Use the getSubtarget call off of the MachineFunction rather than
...
the TargetMachine.
llvm-svn: 227839
2015-02-02 19:22:01 +00:00
Eric Christopher
2c44f43ebe
Remove unused class variables and update calls to get the subtarget
...
off of the machine function.
llvm-svn: 227837
2015-02-02 19:05:28 +00:00
Eric Christopher
d55c7c6670
Sink queries into asserts since the variable is unused otherwise.
...
llvm-svn: 227836
2015-02-02 18:58:24 +00:00
Eric Christopher
241a9e8db2
Update CMake build for removed files.
...
llvm-svn: 227834
2015-02-02 18:52:49 +00:00
Eric Christopher
6ff7ed6446
Get TargetRegisterInfo and TargetInstrInfo off of the MachineFunction
...
and remove unnecessary class variables.
llvm-svn: 227832
2015-02-02 18:46:31 +00:00
Eric Christopher
12a5c0db57
Use the function template getSubtarget to remove an explicit cast.
...
llvm-svn: 227831
2015-02-02 18:46:29 +00:00
Eric Christopher
5c3376aa62
Grab TargetInstrInfo off of the MachineFunction and remove
...
unnecessary class variables.
llvm-svn: 227830
2015-02-02 18:46:27 +00:00
Eric Christopher
da67cc97a7
Remove unused files.
...
llvm-svn: 227829
2015-02-02 18:46:23 +00:00
Colin LeMahieu
cefca69d72
[Hexagon] Adding vector shift instructions and tests.
...
llvm-svn: 227619
2015-01-30 21:58:46 +00:00
Colin LeMahieu
cc4329b836
[Hexagon] Adding vector predicate instructions.
...
llvm-svn: 227613
2015-01-30 21:24:06 +00:00
Colin LeMahieu
26a537c743
[Hexagon] Adding vector permutation instructions and tests.
...
llvm-svn: 227612
2015-01-30 21:14:00 +00:00
Colin LeMahieu
16f5e56703
[Hexagon] Adding vector multiplies. Cleaning up tests.
...
llvm-svn: 227609
2015-01-30 20:56:54 +00:00
Colin LeMahieu
b84ec02296
[Hexagon] Adding XTYPE/COMPLEX instructions and cleaning up tests.
...
llvm-svn: 227607
2015-01-30 20:08:37 +00:00
Colin LeMahieu
21fbc94777
[Hexagon] Adding XTYPE/ALU vector instructions. Organizing test files.
...
llvm-svn: 227598
2015-01-30 19:13:26 +00:00
Colin LeMahieu
709c0a16bb
[Hexagon] Adding a number of vector load variants and organizing tests.
...
llvm-svn: 227588
2015-01-30 18:09:44 +00:00
Colin LeMahieu
3c740a3614
[Hexagon] Organizing tests and adding a few missing jump instruction encodings.
...
llvm-svn: 227498
2015-01-29 21:47:15 +00:00
Colin LeMahieu
bc63f42e0d
[Hexagon] Adding missing instruction encodings and tests.
...
llvm-svn: 227495
2015-01-29 21:30:22 +00:00
Colin LeMahieu
bd4770f915
[Hexagon] Adding alu vector instructions
...
llvm-svn: 227493
2015-01-29 21:09:30 +00:00
Rafael Espindola
ba31e27f0a
Compute the ELF SectionKind from the flags.
...
Any code creating an MCSectionELF knows ELF and already provides the flags.
SectionKind is an abstraction used by common code that uses a plain
MCSection.
Use the flags to compute the SectionKind. This removes a lot of
guessing and boilerplate from the MCSectionELF construction.
llvm-svn: 227476
2015-01-29 17:33:21 +00:00
Colin LeMahieu
1610730faf
[Hexagon] Deleting old variants of intrinsics and adding missing tests.
...
llvm-svn: 227474
2015-01-29 17:26:56 +00:00
Colin LeMahieu
860210bc49
[Hexagon] Adding CR intrinsic tests.
...
llvm-svn: 227463
2015-01-29 16:55:37 +00:00
Colin LeMahieu
e75aa4983c
[Hexagon] Deleting unused classes.
...
llvm-svn: 227460
2015-01-29 16:35:38 +00:00
Colin LeMahieu
a749b3ee6a
[Hexagon] Adding XTYPE/PRED intrinsic tests. Converting predicate types to i32 instead of i1.
...
llvm-svn: 227457
2015-01-29 16:08:43 +00:00
Colin LeMahieu
4379d10273
[Hexagon] Updating several V5 intrinsics and adding FP tests.
...
llvm-svn: 227379
2015-01-28 22:08:16 +00:00
Colin LeMahieu
1de7e0d923
[Hexagon] Updating many V4 intrinsic patterns. Adding missing instruction and deleting unused classes.
...
llvm-svn: 227353
2015-01-28 19:39:09 +00:00
Colin LeMahieu
94c33218e3
[Hexagon] Adding XTYPE/MPY intrinsic tests and some missing multiply instructions.
...
llvm-svn: 227347
2015-01-28 19:16:17 +00:00
Colin LeMahieu
19ed07c75a
[Hexagon] Deleting a lot of old variants of intrinsics and updating references.
...
llvm-svn: 227338
2015-01-28 18:29:11 +00:00
Colin LeMahieu
39b846ce0f
[Hexagon] Converting XTYPE/BIT intrinsic patterns and adding tests.
...
llvm-svn: 227335
2015-01-28 18:06:23 +00:00
Colin LeMahieu
fe03c9a678
[Hexagon] Replacing XTYPE/SHIFT intrinsic patternss. Adding tests and missing instructions with tests.
...
llvm-svn: 227330
2015-01-28 17:37:59 +00:00
Colin LeMahieu
fdbc5adbb6
[Hexagon] Replacing intrinsics for halfword adds and max/min word/dword.
...
llvm-svn: 227322
2015-01-28 17:06:40 +00:00
Chandler Carruth
b81dfa6378
[LPM] Stop using the string based preservation API. It is an
...
abomination.
For starters, this API is incredibly slow. In order to lookup the name
of a pass it must take a memory fence to acquire a pointer to the
managed static pass registry, and then potentially acquire locks while
it consults this registry for information about what passes exist by
that name. This stops the world of LLVMs in your process no matter
how little they cared about the result.
To make this more joyful, you'll note that we are preserving many passes
which *do not exist* any more, or are not even analyses which one might
wish to have be preserved. This means we do all the work only to say
"nope" with no error to the user.
String-based APIs are a *bad idea*. String-based APIs that cannot
produce any meaningful error are an even worse idea. =/
I have a patch that simply removes this API completely, but I'm hesitant
to commit it as I don't really want to perniciously break out-of-tree
users of the old pass manager. I'd rather they just have to migrate to
the new one at some point. If others disagree and would like me to kill
it with fire, just say the word. =]
llvm-svn: 227294
2015-01-28 04:57:56 +00:00
Eric Christopher
8b7706517c
Move DataLayout back to the TargetMachine from TargetSubtargetInfo
...
derived classes.
Since global data alignment, layout, and mangling is often based on the
DataLayout, move it to the TargetMachine. This ensures that global
data is going to be layed out and mangled consistently if the subtarget
changes on a per function basis. Prior to this all targets(*) have
had subtarget dependent code moved out and onto the TargetMachine.
*One target hasn't been migrated as part of this change: R600. The
R600 port has, as a subtarget feature, the size of pointers and
this affects global data layout. I've currently hacked in a FIXME
to enable progress, but the port needs to be updated to either pass
the 64-bitness to the TargetMachine, or fix the DataLayout to
avoid subtarget dependent features.
llvm-svn: 227113
2015-01-26 19:03:15 +00:00
Colin LeMahieu
94269db8ba
[Hexagon] Converting multiply and accumulate with immediate intrinsics to patterns.
...
llvm-svn: 226681
2015-01-21 18:13:15 +00:00
Colin LeMahieu
988c68f2a7
[Hexagon] Adding intrinsics for doubleword ALU operations.
...
llvm-svn: 226606
2015-01-20 20:45:05 +00:00
Colin LeMahieu
0ee02fc9fe
[Hexagon] Updating muxir/ri/ii intrinsics. Setting predicate registers as compatible with i32 rather than doing custom type conversion.
...
llvm-svn: 226500
2015-01-19 20:31:18 +00:00
Colin LeMahieu
fcd4569af6
[Hexagon] Converting intrinsics combine imm/imm, simple shifts and extends.
...
llvm-svn: 226483
2015-01-19 18:56:19 +00:00
Colin LeMahieu
9327bdad2f
[Hexagon] Converting remaining ALU32/ALU intrinsics.
...
llvm-svn: 226480
2015-01-19 18:33:58 +00:00
Colin LeMahieu
663419b008
[Hexagon] Converting ALU32/ALU intrinsics to new patterns.
...
llvm-svn: 226478
2015-01-19 18:22:19 +00:00
Colin LeMahieu
310bad8b7e
[Hexagon] Converting halfword to double accumulating multiply intrinsics.
...
llvm-svn: 226472
2015-01-19 17:36:32 +00:00
David Blaikie
9459832ebd
std::unique_ptrify the MCStreamer argument to createAsmPrinter
...
llvm-svn: 226414
2015-01-18 20:29:04 +00:00
Colin LeMahieu
823415b881
[Hexagon] Converting halfword to doubleword multiply intrinsics.
...
llvm-svn: 226326
2015-01-16 21:41:57 +00:00
Colin LeMahieu
cd9b276966
[Hexagon] Converting accumulating halfword multiply intrinsics to patterns.
...
llvm-svn: 226324
2015-01-16 21:36:34 +00:00
Colin LeMahieu
3b047e0ee5
[Hexagon] Beginning converting intrinsics to patterns instead of duplicated definitions. Converting halfword multiply intrinsics.
...
llvm-svn: 226318
2015-01-16 20:38:54 +00:00
Colin LeMahieu
54adb6a5d5
[Hexagon] Fix 226309, replacement atomic store patterns didn't actually exist, added new versions.
...
llvm-svn: 226315
2015-01-16 20:16:14 +00:00
Colin LeMahieu
bb6718b30e
[Hexagon] Removing old duplicate atomic load/store patterns.
...
llvm-svn: 226309
2015-01-16 19:53:35 +00:00
Colin LeMahieu
7d1f632380
[Hexagon] Converting old patterns to new versions using classes.
...
llvm-svn: 226304
2015-01-16 19:29:59 +00:00
Colin LeMahieu
2e3a26de0c
[Hexagon] Updating call/jump instruction patterns.
...
llvm-svn: 226288
2015-01-16 17:05:27 +00:00
Colin LeMahieu
cd9c4e3e07
[Hexagon] Adding new-value store and bit reverse instructions.
...
llvm-svn: 226224
2015-01-15 23:10:29 +00:00
Colin LeMahieu
c59328e627
[Hexagon] Fix 226206 by uncommenting required pattern and changing patterns for simple load-extends.
...
llvm-svn: 226210
2015-01-15 21:35:49 +00:00
Colin LeMahieu
f87697f05e
[Hexagon] Updating indexed load-extend patterns and changing test to new expected output.
...
llvm-svn: 226206
2015-01-15 21:07:52 +00:00
Colin LeMahieu
538b85810c
[Hexagon] Removing old versions of vsplice, valign, cl0, ct0 and updating references to new versions.
...
llvm-svn: 226194
2015-01-15 19:28:32 +00:00