Eric Christopher
143f02c47d
Remove unused argument to CreateTargetScheduleState and change
...
the TargetMachine to a TargetSubtargetInfo since everything
we wanted is off of that.
llvm-svn: 219382
2014-10-09 01:59:35 +00:00
NAKAMURA Takumi
2a295fd337
HexagonMCCodeEmitter.cpp: Prune 2nd redundant \brief. [-Wdocumentation]
...
llvm-svn: 219073
2014-10-05 04:54:54 +00:00
NAKAMURA Takumi
431c9d3f1f
HexagonDesc: Update LLVMBuild.txt.
...
llvm-svn: 219071
2014-10-05 04:54:29 +00:00
Benjamin Kramer
c6cc58e703
Remove unnecessary copying or replace it with moves in a bunch of places.
...
NFC.
llvm-svn: 219061
2014-10-04 16:55:56 +00:00
Hans Wennborg
da47cf46de
HexagonMCCodeEmitter.h: deleted member functions are not supported in VS2012
...
llvm-svn: 218990
2014-10-03 17:02:28 +00:00
Sid Manning
40d809399f
Fix build break on Hexagon
...
Differential Revision: http://reviews.llvm.org/D5600
llvm-svn: 218987
2014-10-03 13:59:01 +00:00
Sid Manning
7da3f9acba
Adding skeleton for unit testing Hexagon Code Emission
...
Adding and modifying CMakeLists.txt files to run unit tests under
unittests/Target/* if the directory exists. Adding basic unit test to check
that code emitter object can be retrieved.
Differential Revision: http://reviews.llvm.org/D5523
Change by: Colin LeMahieu
llvm-svn: 218986
2014-10-03 13:18:11 +00:00
Sid Manning
31f7125562
Add missing attributes !cmp.[eq,gt,gtu] instructions.
...
These instructions do not indicate they are extendable or the
number of bits in the extendable operand. Rename to match
architected names. Add a testcase for the intrinsics.
llvm-svn: 218453
2014-09-25 13:09:54 +00:00
Sid Manning
bd8bd484c3
Loop instead of individual def's for each GPR.
...
Differential Revision: http://reviews.llvm.org/D5450
llvm-svn: 218305
2014-09-23 13:55:50 +00:00
Aaron Ballman
0bb041b5f4
Reverting NFC changes from r218050. Instead, the warning was disabled for GCC in r218059, so these changes are no longer required.
...
llvm-svn: 218062
2014-09-18 17:34:23 +00:00
Aaron Ballman
11fa97fa32
Fixing a bunch of -Woverloaded-virtual warnings due to hiding getSubtargetImpl from the base class. NFC.
...
llvm-svn: 218050
2014-09-18 13:27:14 +00:00
Sid Manning
e7b92f0e81
Add missing HWEncoding to base register class.
...
This change gives tblgen the information needed to fill in the
HexagonRegEncodingTable.
llvm-svn: 217500
2014-09-10 13:09:25 +00:00
Sid Manning
ac3e325d67
Spelling correction
...
Another trivial spelling change.
llvm-svn: 217364
2014-09-08 13:05:23 +00:00
Benjamin Kramer
8c90fd71f7
Add override to overriden virtual methods, remove virtual keywords.
...
No functionality change. Changes made by clang-tidy + some manual cleanup.
llvm-svn: 217028
2014-09-03 11:41:21 +00:00
Craig Topper
fd38cbebda
Remove 'virtual' keyword from methods markedwith 'override' keyword.
...
llvm-svn: 216823
2014-08-30 16:48:34 +00:00
Sid Manning
67a8936a84
Minor spelling correction.
...
Reviewers: adasgupt, jverma, sidneym
Differential Revision: http://reviews.llvm.org/D5025
llvm-svn: 216667
2014-08-28 14:16:32 +00:00
Alexey Samsonov
2651ae6513
Fix undefined behavior (left shift of negative value) in Hexagon backend.
...
This bug is reported by UBSan.
llvm-svn: 216125
2014-08-20 21:22:03 +00:00
Alexey Samsonov
ea0aee622e
Cleanup: Delete seemingly unused reference to MachineDominatorTree from ScheduleDAGInstrs.
...
llvm-svn: 216124
2014-08-20 20:57:26 +00:00
Alexey Samsonov
8968e6d1b0
Fix null reference creation in ScheduleDAGInstrs constructor call.
...
Both MachineLoopInfo and MachineDominatorTree may be null in ScheduleDAGMI
constructor call. It is undefined behavior to take references to these values.
This bug is reported by UBSan.
llvm-svn: 216118
2014-08-20 19:36:05 +00:00
Robin Morisset
d18cda620c
Fix typos in comments
...
llvm-svn: 215777
2014-08-15 22:17:28 +00:00
Rafael Espindola
d610ba99cb
Remove HasLEB128.
...
We already require CFI, so it should be safe to require .leb128 and .uleb128.
llvm-svn: 215712
2014-08-15 14:01:07 +00:00
Benjamin Kramer
a7c40ef022
Canonicalize header guards into a common format.
...
Add header guards to files that were missing guards. Remove #endif comments
as they don't seem common in LLVM (we can easily add them back if we decide
they're useful)
Changes made by clang-tidy with minor tweaks.
llvm-svn: 215558
2014-08-13 16:26:38 +00:00
Eric Christopher
b5217507c7
Remove the target machine from CCState. Previously it was only used
...
to get the subtarget and that's accessible from the MachineFunction
now. This helps clear the way for smaller changes where we getting
a subtarget will require passing in a MachineFunction/Function as
well.
llvm-svn: 214988
2014-08-06 18:45:26 +00:00
Eric Christopher
fc6de428c8
Have MachineFunction cache a pointer to the subtarget to make lookups
...
shorter/easier and have the DAG use that to do the same lookup. This
can be used in the future for TargetMachine based caching lookups from
the MachineFunction easily.
Update the MIPS subtarget switching machinery to update this pointer
at the same time it runs.
llvm-svn: 214838
2014-08-05 02:39:49 +00:00
Eric Christopher
d913448b38
Remove the TargetMachine forwards for TargetSubtargetInfo based
...
information and update all callers. No functional change.
llvm-svn: 214781
2014-08-04 21:25:23 +00:00
NAKAMURA Takumi
04b8b37f56
Prune Redundant libdeps in CMake's target_link_libraries and LLVMBuild.txt.
...
I checked this with Release+Asserts on x86_64-mingw32. Please restore partially if this were overkill.
llvm-svn: 213064
2014-07-15 11:37:03 +00:00
Alp Toker
cf21875d41
Fix 'platform-specific' hyphenations
...
llvm-svn: 212056
2014-06-30 18:57:16 +00:00
Eric Christopher
c4c63ae9f4
Move all of the hexagon subtarget dependent variables from the target
...
machine to the subtarget.
llvm-svn: 211824
2014-06-27 00:27:40 +00:00
Eric Christopher
4496eb0b09
Have HexagonSelectionDAGInfo take a DataLayout rather than a
...
target machine since that's all it needs.
llvm-svn: 211822
2014-06-27 00:18:25 +00:00
Eric Christopher
dbe1cb0d59
Make HexagonISelLowering not dependent upon a HexagonTargetMachine,
...
but a normal TargetMachine and remove a few cached uses.
llvm-svn: 211821
2014-06-27 00:13:52 +00:00
Eric Christopher
6e9bcd1528
Reduce indentation.
...
llvm-svn: 211820
2014-06-27 00:13:49 +00:00
Eric Christopher
a68f376333
Remove unnecessary caching of the subtarget for HexagonFrameLowering and remove the unused constructor argument.
...
llvm-svn: 211819
2014-06-27 00:13:47 +00:00
Eric Christopher
0d0b3600d8
InstrItineraryData is already on the subtarget, no reason to
...
cache it on the target as well.
llvm-svn: 211818
2014-06-27 00:13:43 +00:00
Craig Topper
35b2f75733
Convert some assert(0) to llvm_unreachable or fold an 'if' condition into the assert.
...
llvm-svn: 211254
2014-06-19 06:10:58 +00:00
Tom Stellard
d172270c44
Hexagon: Expand i1 SELECT_CC
...
il is legal for Hexagon, so I should have marked this as Expand for
SELECT_CC when I removed setOperationAction(ISD::SELECT_CC, MVT::Other,
Expand); in r210541.
llvm-svn: 210544
2014-06-10 16:42:41 +00:00
Tom Stellard
3787b12255
SelectionDAG: Don't use MVT::Other to determine legality of ISD::SELECT_CC
...
The SelectionDAG bad a special case for ISD::SELECT_CC, where it would
allow targets to specify:
setOperationAction(ISD::SELECT_CC, MVT::Other, Expand);
to indicate that they wanted to expand ISD::SELECT_CC for all types.
This wasn't applied correctly everywhere, and it makes writing new
DAG patterns with ISD::SELECT_CC difficult.
llvm-svn: 210541
2014-06-10 16:01:29 +00:00
Tom Stellard
3ca1bfc728
SelectionDAG: Expand SELECT_CC to SELECT + SETCC
...
This consolidates code from the Hexagon, R600, and XCore targets.
No functionality change intended.
llvm-svn: 210539
2014-06-10 16:01:22 +00:00
Eric Christopher
0dd8d486b3
Have TargetSelectionDAGInfo take a DataLayout initializer rather than
...
a TargetMachine since the only thing it wants is DataLayout.
llvm-svn: 210366
2014-06-06 19:04:48 +00:00
Eric Christopher
0120db5f8a
Remove getTargetLowering from TargetPassConfig as the target lowering
...
can change depending upon subtarget/subtarget features for a function.
llvm-svn: 209329
2014-05-21 22:42:07 +00:00
Eric Christopher
1e65e7cab5
Remove unused member variable from hexagon pass.
...
llvm-svn: 209328
2014-05-21 22:42:02 +00:00
Tim Northover
c807a17a9b
TableGen: permit non-leaf ComplexPattern uses
...
This allows the results of a ComplexPattern check to be distributed to separate
named Operands, instead of the current system where all results must apply (and
match perfectly) with a single Operand.
For example, if "some_addrmode" is a ComplexPattern producing two results, you
can write:
def : Pat<(load (some_addrmode GPR64:$base, imm:$offset)),
(INST GPR64:$base, imm:$offset)>;
This should allow neater instruction definitions in TableGen that don't put all
possible aspects of addressing into a single operand, but are still usable with
relatively simple C++ CodeGen idioms.
llvm-svn: 209206
2014-05-20 11:52:46 +00:00
Jyotsna Verma
9a103563f4
reverting r209132
...
llvm-svn: 209139
2014-05-19 16:22:11 +00:00
Jyotsna Verma
daeb25d4e0
Hexagon: Add encoding bits to the mpy instructions.
...
llvm-svn: 209132
2014-05-19 15:32:07 +00:00
Jyotsna Verma
38901ca4f6
[Hexagon] Add new InstrItinClass to support timing classes.
...
This patch doesn't introduce any functionality change. Test cases will be
added later when v5 support is added.
llvm-svn: 208349
2014-05-08 18:47:08 +00:00
Jyotsna Verma
f98a1eca6e
[Hexagon] Add New TSFlags to be used in the upcoming patches.
...
llvm-svn: 208239
2014-05-07 19:07:34 +00:00
Pranav Bhandarkar
94cb35cb05
Remove HexagonTargetMachine::addPassesForOptimizations; it is not needed any more.
...
llvm-svn: 207800
2014-05-01 22:10:59 +00:00
Craig Topper
906c2cd2e6
[C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Hexagon edition
...
llvm-svn: 207508
2014-04-29 07:58:16 +00:00
Craig Topper
e73658ddbb
[C++] Use 'nullptr'.
...
llvm-svn: 207394
2014-04-28 04:05:08 +00:00
Craig Topper
64941d9786
Convert SelectionDAG::getMergeValues to use ArrayRef.
...
llvm-svn: 207374
2014-04-27 19:20:57 +00:00
Craig Topper
48d114bed1
Convert SelectionDAG::getNode methods to use ArrayRef<SDValue>.
...
llvm-svn: 207327
2014-04-26 18:35:24 +00:00