Zhihao Yuan [Mon, 11 Dec 2017 18:29:54 +0000 (18:29 +0000)]
P0620 follow-up: deducing `auto` from braced-init-list in new expr
Summary:
This is a side-effect brought in by p0620r0, which allows other placeholder types (derived from `auto` and `decltype(auto)`) to be usable in a `new` expression with a single-clause //braced-init-list// as its initializer (8.3.4 [expr.new]/2). N3922 defined its semantics.
References:
http://wg21.link/p0620r0
http://wg21.link/n3922
Reviewers: rsmith, aaron.ballman
Reviewed By: rsmith
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D39451
llvm-svn: 320401
Simon Pilgrim [Mon, 11 Dec 2017 18:23:24 +0000 (18:23 +0000)]
[X86] Add AND/OR/XOR schedule tests
llvm-svn: 320400
Jonas Devlieghere [Mon, 11 Dec 2017 18:22:47 +0000 (18:22 +0000)]
[dwarfdump] Fix off-by-one bug in accelerator table extractor.
This fixes a bug where the verifier was complaining about empty
accelerator tables. When the table is empty, its size is not a valid
offset as it points after the end of the section.
This patch also makes the extractor return llvm:Error instead of bool
for better error reporting in the verifier.
Differential revision: https://reviews.llvm.org/D41063
rdar://
35932007
llvm-svn: 320399
Erich Keane [Mon, 11 Dec 2017 18:14:51 +0000 (18:14 +0000)]
Revert 320391: Certain targets are failing, pulling back to diagnose.
llvm-svn: 320398
Simon Pilgrim [Mon, 11 Dec 2017 18:13:40 +0000 (18:13 +0000)]
[X86] Add ADD/SUB schedule tests
llvm-svn: 320397
Malcolm Parsons [Mon, 11 Dec 2017 18:00:36 +0000 (18:00 +0000)]
[Sema] Fix crash in unused-lambda-capture warning for VLAs
Summary:
Clang was crashing when diagnosing an unused-lambda-capture for a VLA because
From.getVariable() is null for the capture of a VLA bound.
Warning about the VLA bound capture is not helpful, so only warn for the VLA
itself.
Fixes: PR35555
Reviewers: aaron.ballman, dim, rsmith
Reviewed By: aaron.ballman, dim
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D41016
llvm-svn: 320396
Simon Pilgrim [Mon, 11 Dec 2017 17:59:05 +0000 (17:59 +0000)]
[X86] Add ADC/SBB schedule tests
llvm-svn: 320395
Rui Ueyama [Mon, 11 Dec 2017 17:52:43 +0000 (17:52 +0000)]
Sort.
llvm-svn: 320394
Rui Ueyama [Mon, 11 Dec 2017 17:52:28 +0000 (17:52 +0000)]
Change function type more LLVM-ish.
Also fix variable naming style.
llvm-svn: 320393
Simon Pilgrim [Mon, 11 Dec 2017 17:37:08 +0000 (17:37 +0000)]
[X86] Add MOVSLQ schedule tests
llvm-svn: 320392
Erich Keane [Mon, 11 Dec 2017 17:36:42 +0000 (17:36 +0000)]
For Linux/gnu compatibility, preinclude <stdc-predef.h> if the file is available
As reported in llvm bugzilla 32377.
Here’s a patch to add preinclude of stdc-predef.h.
The gcc documentation says “On GNU/Linux, <stdc-predef.h> is pre-included.” See https://gcc.gnu.org/gcc-4.8/porting_to.html;
The preinclude is inhibited with –ffreestanding.
Basically I fixed the failing test cases by adding –ffreestanding which inhibits this behavior.
I fixed all the failing tests, including some in extra/test, there's a separate patch for that which is linked here
Note: this is a recommit after a test failure took down the original (r318669)
Patch By: mibintc
Differential Revision: https://reviews.llvm.org/D34158
llvm-svn: 320391
Rafael Espindola [Mon, 11 Dec 2017 17:23:28 +0000 (17:23 +0000)]
Create reserved symbols early so they can be versioned.
This fixes pr35570.
We were creating these symbols after parsing version scripts, so they
could not be versioned.
We cannot move the version script parsing later because we need it for
lto.
One option is to move both addReservedSymbols and
createSyntheticSections earlier. The disadvantage is that some
sections created by createSyntheticSections replace other input
sections. For example, gdb index replaces .debug_gnu_pubnames, so it
wants to run after gc sections so that it can set S->Live to false.
What this patch does instead is to move just the ElfHeader creation
early.
llvm-svn: 320390
Simon Pilgrim [Mon, 11 Dec 2017 17:01:21 +0000 (17:01 +0000)]
Normalize line endings. NFCI.
llvm-svn: 320389
Amara Emerson [Mon, 11 Dec 2017 16:58:29 +0000 (16:58 +0000)]
[GlobalISel] Disable GISel for big endian.
This is due to PR26161 needing to be resolved before we can fix
big endian bugs like PR35359. The work to split aggregates into smaller LLTs
instead of using one large scalar will take some time, so in the mean time
we'll fall back to SDAG.
Some ARM BE tests xfailed for now as a result.
Differential Revision: https://reviews.llvm.org/D40789
llvm-svn: 320388
Simon Pilgrim [Mon, 11 Dec 2017 16:47:21 +0000 (16:47 +0000)]
[X86] Add LWP schedule tests
Tag LWP instructions as WriteSystem
llvm-svn: 320387
Simon Pilgrim [Mon, 11 Dec 2017 16:32:58 +0000 (16:32 +0000)]
[X86] Add INT/INTO schedule tests
llvm-svn: 320386
Simon Pilgrim [Mon, 11 Dec 2017 16:16:40 +0000 (16:16 +0000)]
[X86] Add IN/OUT schedule tests
llvm-svn: 320385
Simon Pilgrim [Mon, 11 Dec 2017 16:08:21 +0000 (16:08 +0000)]
[X86] Add IDIV schedule tests
llvm-svn: 320384
Simon Pilgrim [Mon, 11 Dec 2017 16:04:08 +0000 (16:04 +0000)]
[X86] Add CMPXCHG schedule tests
llvm-svn: 320383
Simon Pilgrim [Mon, 11 Dec 2017 15:53:12 +0000 (15:53 +0000)]
[X86] Add CLZERO schedule test
llvm-svn: 320382
Alexander Potapenko [Mon, 11 Dec 2017 15:48:56 +0000 (15:48 +0000)]
[MSan] Hotfix compilation
For some reason the override directives got removed in r320373.
I suspect this to be an unwanted effect of clang-format.
llvm-svn: 320381
Simon Pilgrim [Mon, 11 Dec 2017 15:41:52 +0000 (15:41 +0000)]
[X86] Add ADCX/ADOX/XADD/XLAT schedule tests
llvm-svn: 320380
Nirav Dave [Mon, 11 Dec 2017 15:35:40 +0000 (15:35 +0000)]
[X86] Modify Nontemporal tests to avoid deadstore optimization.
llvm-svn: 320379
Tony Tye [Mon, 11 Dec 2017 15:35:27 +0000 (15:35 +0000)]
[AMDGPU] Rename Bonaire target to be gfx704; update target feature handling
- Rename Bonaire target to be gfx704.
- Eliminate gfx800 and make Iceland and Tonga both use gfx802 as they use the same code.
- List target features supported by each processor in the processor table together with the default value.
- Add xnack flag to e_flags.
- Remove xnack from kernel metadata and kernel descriptor since it is now a whole code object property.
Differential Revision: https://reviews.llvm.org/D40051
llvm-svn: 320378
Pavel Labath [Mon, 11 Dec 2017 15:28:21 +0000 (15:28 +0000)]
dotest.py: Correctly annotate lldbinline tests with debug info categories
This enables one to run all dwo tests with dotest.py --category dwo, or
skip them with --skip-category.
llvm-svn: 320377
Simon Pilgrim [Mon, 11 Dec 2017 15:25:31 +0000 (15:25 +0000)]
[X86] Add SETCC/STC/STD/UD2 schedule tests
llvm-svn: 320376
Dmitry Preobrazhensky [Mon, 11 Dec 2017 15:23:20 +0000 (15:23 +0000)]
[AMDGPU][MC][GFX9] Corrected encoding of ttmp registers, disabled tba/tma
See bugs 35494 and 35559:
https://bugs.llvm.org/show_bug.cgi?id=35494
https://bugs.llvm.org/show_bug.cgi?id=35559
Reviewers: vpykhtin, artem.tamazov, arsenm
Differential Revision: https://reviews.llvm.org/D41007
llvm-svn: 320375
Sanjay Patel [Mon, 11 Dec 2017 15:19:31 +0000 (15:19 +0000)]
[DAGCombiner] protect against an infinite loop between shl <--> mul (PR35579)
At first, I tried to thread the x86 needle and use a target hook (isVectorShiftByScalarCheap())
to disable the transform only for non-splat pow-of-2 constants, but not AVX2, but only some
element types, but...it's difficult.
Here we just avoid the loop with the x86 vector transform that conflicts with the general DAG
combine and preserve all of the existing behavior AFAICT otherwise.
Some tests that will probably fail if someone does try to restrict this in a more targeted way
for x86-only may be found in:
test/CodeGen/X86/combine-mul.ll
test/CodeGen/X86/vector-mul.ll
test/CodeGen/X86/widen_arith-5.ll
This should prevent the infinite looping seen with:
https://bugs.llvm.org/show_bug.cgi?id=35579
Differential Revision: https://reviews.llvm.org/D41040
llvm-svn: 320374
Alexander Potapenko [Mon, 11 Dec 2017 15:05:22 +0000 (15:05 +0000)]
[MSan] introduce getShadowOriginPtr(). NFC.
This patch introduces getShadowOriginPtr(), a method that obtains both the shadow and origin pointers for an address as a Value pair.
The existing callers of getShadowPtr() and getOriginPtr() are updated to use getShadowOriginPtr().
The rationale for this change is to simplify KMSAN instrumentation implementation.
In KMSAN origins tracking is always enabled, and there's no direct mapping between the app memory and the shadow/origin pages.
Both the shadow and the origin pointer for a given address are obtained by calling a single runtime hook from the instrumentation,
therefore it's easier to work with those pointers together.
Reviewed at https://reviews.llvm.org/D40835.
llvm-svn: 320373
Peter Smith [Mon, 11 Dec 2017 15:00:58 +0000 (15:00 +0000)]
[ELF] Improve comments in aarch64 errata fix test [NFC]
Comment improvements split out from review D36749. No changes to any non
comment line.
llvm-svn: 320372
Simon Pilgrim [Mon, 11 Dec 2017 14:56:44 +0000 (14:56 +0000)]
[X86] Add SAR/SHL/SHR schedule tests
llvm-svn: 320371
Simon Pilgrim [Mon, 11 Dec 2017 14:46:42 +0000 (14:46 +0000)]
[X86] Add RCL/RCR schedule tests
llvm-svn: 320370
Krzysztof Parzyszek [Mon, 11 Dec 2017 14:46:06 +0000 (14:46 +0000)]
[Hexagon] Crash in instruction selection for insert_vector_elt for HVX
A wrong type was passed to insertVector, causing an out-of-bounds value
to be added an an operand to HexagonISD::INSERT. This later failed in
instruction selection.
llvm-svn: 320369
Nemanja Ivanovic [Mon, 11 Dec 2017 14:35:48 +0000 (14:35 +0000)]
[PowerPC] Sign-extend negative constant stores
Second part of https://reviews.llvm.org/D40348.
Revision r318436 has extended all constants feeding a store to 64 bits
to allow for CSE on the SDAG. However, negative constants were zero extended
which made the constant being loaded appear to be a positive value larger than
16 bits. This resulted in long sequences to materialize such constants
rather than simply a "load immediate". This patch just sign-extends those
updated constants so that they remain 16-bit signed immediates if they started
out that way.
llvm-svn: 320368
Pavel Labath [Mon, 11 Dec 2017 14:22:30 +0000 (14:22 +0000)]
Add a StringList constructor to Args class
Host::GetEnvironment returns a StringList, but the interface for
launching a process takes Args. The fact that we use two classes for
representing an environment is not ideal, but for now we should at least
have an easy way to convert between the two.
llvm-svn: 320366
Nemanja Ivanovic [Mon, 11 Dec 2017 14:16:02 +0000 (14:16 +0000)]
[DAGCombiner] Add combined indexed load to the work list
This commit is the first part of https://reviews.llvm.org/D40348.
In order to allow target combines to be performed on newly combined
indexed loads, add them back to the worklist. The remainder of the
above patch will be committed in subsequent revisions and will use
this. Test cases will be included with those follow-up commits.
llvm-svn: 320365
Roger Ferrer Ibanez [Mon, 11 Dec 2017 13:54:58 +0000 (13:54 +0000)]
[libcxx] Define istream_iterator equality comparison operators out-of-line
Currently libc++ defines operator== and operator!= as friend functions in the
definition of the istream_iterator class template. Such definition has a subtle
difference from an out-of-line definition required by the C++ Standard: these
functions can only be found by argument-dependent lookup, but not by qualified
lookup.
This patch changes the definition, so that it conforms to the C++ Standard and
adds a check involving qualified lookup to the test suite.
Patch contributed by Mikhail Maltsev.
Differential Revision: https://reviews.llvm.org/D40415
llvm-svn: 320363
Diana Picus [Mon, 11 Dec 2017 13:28:45 +0000 (13:28 +0000)]
[ARM GlobalISel] Add test for a MOVTi16 pattern. NFC
Add test for matching an OR with 0xFFFF0000 to a MOVTi16.
llvm-svn: 320362
Simon Pilgrim [Mon, 11 Dec 2017 13:25:02 +0000 (13:25 +0000)]
[X86] Add fsgsbase schedule tests.
llvm-svn: 320361
Michael Kruse [Mon, 11 Dec 2017 12:51:24 +0000 (12:51 +0000)]
[ScopBuilder] Split statements on encountering store instructions.
Introduce -polly-stmt-granularity=store option.
Contributed-by: Nandini Singhal <cs15mtech01004@iith.ac.in>
Differential Revision: https://reviews.llvm.org/D37337
llvm-svn: 320360
Alex Bradbury [Mon, 11 Dec 2017 12:49:02 +0000 (12:49 +0000)]
[RISCV] Add custom CC_RISCV calling convention and improved call support
The TableGen-based calling convention definitions are inflexible, while
writing a function to implement the calling convention is very
straight-forward, and allows difficult cases to be handled more easily. With
this patch adds support for:
* Passing large scalars according to the RV32I calling convention
* Byval arguments
* Passing values on the stack when the argument registers are exhausted
The custom CC_RISCV calling convention is also used for returns.
This patch also documents the ABI lowering that a language frontend is
expected to perform. I would like to work to simplify these requirements over
time, but this will require further discussion within the LLVM community.
We add PendingArgFlags CCState, as a companion to PendingLocs.
The PendingLocs vector is used by a number of backends to handle arguments
that are split during legalisation. However CCValAssign doesn't keep track of
the original argument alignment. Therefore, add a PendingArgFlags vector which
can be used to keep track of the ISD::ArgFlagsTy for every value added to
PendingLocs.
Differential Revision: https://reviews.llvm.org/D39898
llvm-svn: 320359
Alex Bradbury [Mon, 11 Dec 2017 12:38:17 +0000 (12:38 +0000)]
[RISCV] Allow lowering of dynamic_stackalloc, stacksave, stackrestore
llvm-svn: 320358
Alex Bradbury [Mon, 11 Dec 2017 12:34:11 +0000 (12:34 +0000)]
[RISCV] Implement prolog and epilog insertion
As frame pointer elimination isn't implemented until a later patch and we make
extensive use of update_llc_test_checks.py, this changes touches a lot of the
RISC-V tests.
Differential Revision: https://reviews.llvm.org/D39849
llvm-svn: 320357
Simon Pilgrim [Mon, 11 Dec 2017 12:22:15 +0000 (12:22 +0000)]
[X86] Regenerate fsgsbase intrinsic tests. NFCI.
llvm-svn: 320356
Roger Ferrer Ibanez [Mon, 11 Dec 2017 12:13:45 +0000 (12:13 +0000)]
[ARM] Use ADDCARRY / SUBCARRY
This is a preparatory step for D34515.
This change:
- makes nodes ISD::ADDCARRY and ISD::SUBCARRY legal for i32
- lowering is done by first converting the boolean value into the carry flag
using (_, C) ← (ARMISD::ADDC R, -1) and converted back to an integer value
using (R, _) ← (ARMISD::ADDE 0, 0, C). An ARMISD::ADDE between the two
operations does the actual addition.
- for subtraction, given that ISD::SUBCARRY second result is actually a
borrow, we need to invert the value of the second operand and result before
and after using ARMISD::SUBE. We need to invert the carry result of
ARMISD::SUBE to preserve the semantics.
- given that the generic combiner may lower ISD::ADDCARRY and
ISD::SUBCARRYinto ISD::UADDO and ISD::USUBO we need to update their lowering
as well otherwise i64 operations now would require branches. This implies
updating the corresponding test for unsigned.
- add new combiner to remove the redundant conversions from/to carry flags
to/from boolean values (ARMISD::ADDC (ARMISD::ADDE 0, 0, C), -1) → C
- fixes PR34045
- fixes PR34564
- fixes PR35103
Differential Revision: https://reviews.llvm.org/D35192
llvm-svn: 320355
Aleksandar Beserminji [Mon, 11 Dec 2017 12:12:16 +0000 (12:12 +0000)]
[mips] Minor update to the comment (NFC)
llvm-svn: 320354
Alex Bradbury [Mon, 11 Dec 2017 11:53:54 +0000 (11:53 +0000)]
[RISCV] Support lowering FrameIndex
Introduces the AddrFI "addressing mode", which is necessary simply because
it's not possible to write a pattern that directly matches a frameindex.
Ensure callee-saved registers are accessed relative to the stackpointer. This
is necessary as callee-saved register spills are performed before the frame
pointer is set.
Move HexagonDAGToDAGISel::isOrEquivalentToAdd to SelectionDAGISel, so we can
make use of it in the RISC-V backend.
Differential Revision: https://reviews.llvm.org/D39848
llvm-svn: 320353
Diana Picus [Mon, 11 Dec 2017 11:44:23 +0000 (11:44 +0000)]
[ARM GlobalISel] Add tests for PKHBT and PKHTB
Test (some of) the patterns for selecting PKHBT and PKHTB. The others
are just very similar to the ones we're testing and there would be
little value in covering them as well.
llvm-svn: 320352
Aleksandar Beserminji [Mon, 11 Dec 2017 11:29:17 +0000 (11:29 +0000)]
[mips] Removal of microMIPS64R6
microMIPS64R6 is removed from backend, and therefore frontend
will show an error when target is microMIPS64R6.
This is Clang part of patch.
Differential Revision: https://reviews.llvm.org/D35624
llvm-svn: 320351
Aleksandar Beserminji [Mon, 11 Dec 2017 11:21:40 +0000 (11:21 +0000)]
[mips] Removal of microMIPS64R6
All files and parts of files related to microMIPS4R6 are removed.
When target is microMIPS4R6, errors are printed.
This is LLVM part of patch.
Differential Revision: https://reviews.llvm.org/D35625
llvm-svn: 320350
Pavel Labath [Mon, 11 Dec 2017 11:12:22 +0000 (11:12 +0000)]
Fix osx build broken in r320346
llvm-svn: 320349
Dylan McKay [Mon, 11 Dec 2017 11:01:27 +0000 (11:01 +0000)]
[AVR] Implement some missing code paths
This has been broken since r320009.
llvm-svn: 320348
Dylan McKay [Mon, 11 Dec 2017 11:01:19 +0000 (11:01 +0000)]
[AVR] Fix incorrectly-calculated AVRMCExpr evaluations
This has been broken since r320009.
llvm-svn: 320347
Pavel Labath [Mon, 11 Dec 2017 10:09:14 +0000 (10:09 +0000)]
Move PseudoTerminal to the lldb_private namespace
lldb_utility doesn't make sense, as it is no longer even living in the
"utility" module.
llvm-svn: 320346
Pavel Labath [Mon, 11 Dec 2017 09:33:18 +0000 (09:33 +0000)]
MainLoop: avoid infinite loop when pty slave gets closed
Summary:
For ptys (at least on Linux), the end-of-file (closing of the slave FD)
is signalled by the POLLHUP flag. We were ignoring this flag, which
meant that when this happened, we would spin in a loop, continuously
calling poll(2) and not making any progress.
This makes sure we treat POLLHUP as a read event (reading will return
0), and we call the registered callback when it happens. This is the
behavior our clients expect (and is consistent with how select(2)
works).
Reviewers: eugene, beanz
Subscribers: lldb-commits
Differential Revision: https://reviews.llvm.org/D41008
llvm-svn: 320345
Craig Topper [Mon, 11 Dec 2017 08:33:20 +0000 (08:33 +0000)]
[DAGCombiner] Support folding (mulhs/u X, 0)->0 for vectors.
We should probably also fold (mulhs/u X, 1) for vectors, but that's harder.
llvm-svn: 320344
Craig Topper [Mon, 11 Dec 2017 08:33:19 +0000 (08:33 +0000)]
[DAGCombiner] Reuse existing SDLoc variable instead of creating a new one. NFC
llvm-svn: 320343
Craig Topper [Mon, 11 Dec 2017 06:16:26 +0000 (06:16 +0000)]
[X86] Regenerate test with update_llc_test_checks.py
llvm-svn: 320342
Davide Italiano [Mon, 11 Dec 2017 05:09:35 +0000 (05:09 +0000)]
Revert "[DataEncoder] Replace buggy versions of write functions."
The commit exposes a bunch of failures in the LLDB testsuite that
I need to analyze more carefully. Reverting for now.
llvm-svn: 320341
Craig Topper [Mon, 11 Dec 2017 01:48:10 +0000 (01:48 +0000)]
[X86] Add a test case for masked scatter where the index needs to be legalized from v2i32 while other types are legal.
llvm-svn: 320340
Rafael Espindola [Mon, 11 Dec 2017 01:06:39 +0000 (01:06 +0000)]
Fix test to test what it intended to test.
The test was added to test that we don't merge read only data
sections, but the sections in the test were rw.
llvm-svn: 320339
Davide Italiano [Sun, 10 Dec 2017 23:49:23 +0000 (23:49 +0000)]
[DarwinLog] Remove other dead code. Found while reading this file.
llvm-svn: 320338
Davide Italiano [Sun, 10 Dec 2017 23:33:33 +0000 (23:33 +0000)]
[MachException] Garbage collect unused and dead code.
llvm-svn: 320337
Michael Kruse [Sun, 10 Dec 2017 22:56:32 +0000 (22:56 +0000)]
[ScopBuilder] Fix typo. NFC.
Contributed-by: Nandini Singhal <cs15mtech01004@iith.ac.in>
Differential Revision: https://reviews.llvm.org/D41047
llvm-svn: 320336
Davide Italiano [Sun, 10 Dec 2017 22:54:07 +0000 (22:54 +0000)]
[DataEncoder] Replace buggy versions of write functions.
They cause an ubsan error when ran through the testsuite (store
to misaligned address is UB). This commit kills two birds with
one stone, as we also remove some code while fixing it.
<rdar://problem/
35941757>
llvm-svn: 320335
Simon Pilgrim [Sun, 10 Dec 2017 22:11:56 +0000 (22:11 +0000)]
[X86] Add ROL/ROR schedule tests
llvm-svn: 320334
Simon Pilgrim [Sun, 10 Dec 2017 21:56:24 +0000 (21:56 +0000)]
[X86] Add DIV/MUL/NEG/NOP/NOT/PAUSE schedule tests
llvm-svn: 320333
Simon Pilgrim [Sun, 10 Dec 2017 21:28:00 +0000 (21:28 +0000)]
[X86] Add DEC/INC schedule tests
Include i686 (non-REX) variant tests as well
llvm-svn: 320332
Simon Pilgrim [Sun, 10 Dec 2017 21:10:28 +0000 (21:10 +0000)]
[X86] Add INS/OUTS schedule tests
llvm-svn: 320331
Simon Pilgrim [Sun, 10 Dec 2017 20:58:22 +0000 (20:58 +0000)]
[X86] Add CMPS/MOVS/SCAS/STOS schedule tests
llvm-svn: 320330
Simon Pilgrim [Sun, 10 Dec 2017 20:46:57 +0000 (20:46 +0000)]
[X86] Add CMOV schedule tests
llvm-svn: 320329
Simon Pilgrim [Sun, 10 Dec 2017 20:22:47 +0000 (20:22 +0000)]
[X86] Add BT/BTC/BTR/BTS schedule tests
llvm-svn: 320328
Rafael Espindola [Sun, 10 Dec 2017 20:07:03 +0000 (20:07 +0000)]
Move RelaPlt and RelaIplt to InX. NFC.
llvm-svn: 320327
Craig Topper [Sun, 10 Dec 2017 19:47:57 +0000 (19:47 +0000)]
[X86] Add VCOMISDZrr, VCOMISSZrr, VUCOMISDZrr, and VUCOMISSZrr to the skylake server sheduler model
llvm-svn: 320326
Craig Topper [Sun, 10 Dec 2017 19:47:56 +0000 (19:47 +0000)]
[X86] Rename some instructions that start with Int_ to have the _Int at the end.
This matches AVX512 version and is more consistent overall. And improves our scheduler models.
In some cases this adds _Int to instructions that didn't have any Int_ before. It's a side effect of the adjustments made to some of the multiclasses.
llvm-svn: 320325
Rafael Espindola [Sun, 10 Dec 2017 19:44:42 +0000 (19:44 +0000)]
Move RelaDyn to InX. NFC.
llvm-svn: 320324
Rafael Espindola [Sun, 10 Dec 2017 19:28:32 +0000 (19:28 +0000)]
Remove this->. NFC.
llvm-svn: 320323
Simon Pilgrim [Sun, 10 Dec 2017 19:19:22 +0000 (19:19 +0000)]
[X86][X87] Fix typo in znver1 FIST/FISTT schedule patterns
llvm-svn: 320322
Simon Pilgrim [Sun, 10 Dec 2017 18:53:15 +0000 (18:53 +0000)]
[X86][X87] Add missing x87 scheduler tests
Split off some 'n' instruction versions to make it clearer when WAIT is being inserted
llvm-svn: 320321
Craig Topper [Sun, 10 Dec 2017 17:42:44 +0000 (17:42 +0000)]
[X86] Rename some instructions from 'rb' to 'rrb' to make 'b' a proper suffix. Fix the scheduling information for some of them.
Some of the scheduling information was only present for the 'rb' version' and not the 'rr' version. Now we match 'rr(b?)'
llvm-svn: 320320
Craig Topper [Sun, 10 Dec 2017 17:42:43 +0000 (17:42 +0000)]
[X86] Add VCVTQQ2PS to the skylake server scheduler models.
llvm-svn: 320319
Craig Topper [Sun, 10 Dec 2017 17:42:42 +0000 (17:42 +0000)]
[X86] Add VPMULLWZ256 to the skylake server scheduler model
llvm-svn: 320318
Craig Topper [Sun, 10 Dec 2017 17:42:41 +0000 (17:42 +0000)]
[X86] Add 256/512-bit EVEX VPSADBW instructions to skylake server scheduler model.
llvm-svn: 320317
Craig Topper [Sun, 10 Dec 2017 17:42:39 +0000 (17:42 +0000)]
[X86] Fix a few instructions that were named Z512 instead of just Z.
This makes things consistent with our normal instruction naming.
llvm-svn: 320316
Craig Topper [Sun, 10 Dec 2017 17:42:38 +0000 (17:42 +0000)]
[X86] Add VPSRLWZrr to skylake server scheduler model.
llvm-svn: 320315
Craig Topper [Sun, 10 Dec 2017 17:42:37 +0000 (17:42 +0000)]
[X86] Add VPUNPCKLWDZrr to skylake server scheduler model.
llvm-svn: 320314
Craig Topper [Sun, 10 Dec 2017 17:42:36 +0000 (17:42 +0000)]
[X86] Adjust tablegen includes so we can use Instructions in scheduler models instead of just instregexs.
This separates the CPU specific scheduler model includes to occur after the instructions. Moves the instruction includes between the basic scheduler information and the CPU specific scheduler models.
llvm-svn: 320313
Sanjay Patel [Sun, 10 Dec 2017 17:25:54 +0000 (17:25 +0000)]
[SimplifyLibCalls] propagate FMF when folding pow(x, -1.0) call
Follow-up for a bug that's similar to:
https://bugs.llvm.org/show_bug.cgi?id=35601
llvm-svn: 320312
Sanjay Patel [Sun, 10 Dec 2017 17:21:51 +0000 (17:21 +0000)]
[InstCombine] add test for pow(x, -1.0) with FMF; NFC
llvm-svn: 320311
Sanjay Patel [Sun, 10 Dec 2017 16:52:26 +0000 (16:52 +0000)]
[SimplifyLibCalls] propagate FMF when folding pow(x, 2.0) call (PR35601)
This should fix the larger problem with sqrt shown in:
https://bugs.llvm.org/show_bug.cgi?id=35601
llvm-svn: 320310
Sanjay Patel [Sun, 10 Dec 2017 16:43:34 +0000 (16:43 +0000)]
[InstCombine] add test for pow(x, 2.0) with FMF; NFC
llvm-svn: 320309
Simon Pilgrim [Sun, 10 Dec 2017 13:49:51 +0000 (13:49 +0000)]
[X86] Flag BroadWell scheduler model as complete
Locally tag COPY as WriteMove, which has caused some reg-reg + reg-mem instruction tests to reorder.
llvm-svn: 320308
Simon Pilgrim [Sun, 10 Dec 2017 13:41:29 +0000 (13:41 +0000)]
Regenerate some AVX2+ scheduling tests that got missed
llvm-svn: 320307
Simon Pilgrim [Sun, 10 Dec 2017 13:00:37 +0000 (13:00 +0000)]
Strip trailing whitespace. NFCI.
llvm-svn: 320306
Simon Pilgrim [Sun, 10 Dec 2017 12:59:55 +0000 (12:59 +0000)]
Regenerate some scheduling tests that got missed
llvm-svn: 320305
Simon Pilgrim [Sun, 10 Dec 2017 12:43:53 +0000 (12:43 +0000)]
[X86] Flag ZNVER1 scheduler model as complete
We just have to locally tag COPY as WriteMove
llvm-svn: 320304
Simon Pilgrim [Sun, 10 Dec 2017 12:36:29 +0000 (12:36 +0000)]
[X86] Flag SLM scheduler model as complete
We just have to locally tag COPY as WriteMove
llvm-svn: 320303
Simon Pilgrim [Sun, 10 Dec 2017 12:26:35 +0000 (12:26 +0000)]
[X86][AVX[ Tag VZEROALL/VZEROUPPER instructions scheduler classes
llvm-svn: 320302
Simon Pilgrim [Sun, 10 Dec 2017 12:08:04 +0000 (12:08 +0000)]
[X86] Tag SSE4A instructions as SSE INTALU scheduler classes
llvm-svn: 320301
Simon Pilgrim [Sun, 10 Dec 2017 11:51:29 +0000 (11:51 +0000)]
[X86] Flag BTVER2 scheduler model as complete
We just have to locally tag COPY as WriteMove
llvm-svn: 320300