Commit Graph

130259 Commits

Author SHA1 Message Date
Tim Northover
77e5760b43 MCParser: diagnose missing directional labels more clearly.
Before, ELF at least managed a diagnostic but it was a completely untraceable
"undefined symbol" error. MachO had a variety of even worse behaviours: crash,
emit corrupt file, or an equally bad message.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265984 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 19:50:46 +00:00
Matthew Simpson
09e9ded8a1 [LoopUtils, LV] Fix PR27246 (first-order recurrences)
This patch ensures that when we detect first-order recurrences, we reject a phi
node if its previous value is also a phi node. During vectorization the initial
and previous values of the recurrence are shuffled together to create the value
for the current iteration. However, phi nodes are not widened like other
instructions. This fixes PR27246.

Differential Revision: http://reviews.llvm.org/D18971

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265983 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 19:48:18 +00:00
Davide Italiano
e09329d549 [DebugInfo] Fix even more tests to include DICompileunit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265980 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 18:53:27 +00:00
Sriraman Tallam
0fd07efa78 Test commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265976 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 18:40:50 +00:00
Lang Hames
90ae214a17 [Object] Make .alt_entry directive parsing MachO specific.
ELF and COFF will now treat .alt_entry like any other unrecognized directive.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265975 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 18:33:45 +00:00
Adrian Prantl
5362126448 Fix missing DICompileUnits in testcases
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265974 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 18:15:44 +00:00
Sanjay Patel
013403c592 [InstCombine] consolidate tests for related bugs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265973 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 17:58:37 +00:00
Reid Kleckner
41e5af8e94 Use member initializers for all scalar fields of MachineFrameInfo to save boilerplate
No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265972 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 17:54:16 +00:00
Reid Kleckner
67e74634d3 Combine redundant stack realignment booleans in MachineFrameInfo
MachineFrameInfo does not need to be able to distinguish between the
user asking us not to realign the stack and the target telling us it
doesn't support stack realignment. Either way, fixed stack objects have
their alignment clamped.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265971 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 17:54:03 +00:00
Sanjay Patel
a05380c564 add FIXME comment; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265970 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 17:35:57 +00:00
Sanjay Patel
c19ec77e20 add an assert for safety; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265969 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 17:27:44 +00:00
Sanjay Patel
38d4f53fc1 variable names start with a capital letter; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265968 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 17:25:23 +00:00
Hemant Kulkarni
14dddbfb19 [llvm-readobj] Add ELF hash histogram printing
Differential Revision: http://reviews.llvm.org/D18907

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265967 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 17:15:30 +00:00
Xinliang David Li
6a7ae27ea4 Add code comment/NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265966 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 17:13:08 +00:00
Sanjay Patel
09a3a210e0 [InstCombine] use canEvaluateShiftedShift() to handle the lshr case (NFCI)
We need just a couple of logic tweaks to consolidate the shl and lshr cases.

This is step 5 of refactoring to solve PR26760:
https://llvm.org/bugs/show_bug.cgi?id=26760



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265965 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 17:11:55 +00:00
Adrian Prantl
96f2e57825 Make the distinct DISubprogram in this testcase really distinct.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265962 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 16:58:40 +00:00
Adrian Prantl
a265a6ede6 Update discriminator testcases to use proper NoDebug CUs instead of omitting
!llvm.dbg.cu.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265961 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 16:58:35 +00:00
Sanjay Patel
5740d620f3 [InstCombine] don't try to shift an illegal amount (PR26760)
This is the straightforward fix for PR26760:
https://llvm.org/bugs/show_bug.cgi?id=26760

But we still need to make some changes to generalize this helper function
and then send the lshr case into here.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265960 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 16:50:32 +00:00
Tom Stellard
94eb1d993e TargetRegisterInfo: Add getRegAsmName()
Summary:
The motivation for this new function is to move an invalid assumption
about the relationship between the names of register definitions in
tablegen files and their assembly names into TargetRegisterInfo, so that
we can begin working on fixing this assumption.

The current problem is that if you have a register definition in
TableGen like:

def MYReg0 : Register<"r0", 0>;

The function TargetLowering::getRegForInlineAsmConstraint() derives the
assembly name from the tablegen name: "MyReg0" rather than the given
assembly name "r0".  This is working, because on most targets the
tablegen name and the assembly names are case insensitive matches for
each other (e.g. def EAX : X86Reg<"eax", ...>

getRegAsmName() will allow targets to override this default assumption and
return the correct assembly name.

Reviewers: echristo, hfinkel

Subscribers: SamWot, echristo, hfinkel, llvm-commits

Differential Revision: http://reviews.llvm.org/D15614

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265955 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 16:21:12 +00:00
Sanjay Patel
5d2dd715c5 [InstCombine] rename variables in shifted-shift helper function (NFCI)
This is step 3 of refactoring to solve PR26760:
https://llvm.org/bugs/show_bug.cgi?id=26760


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265954 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 16:11:07 +00:00
Adrian Prantl
08abc19b60 More upgrading of old- and very-old-style debug info in testcases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265953 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 15:53:44 +00:00
Sanjay Patel
98198fca40 [InstCombine] add helper function for shift-shift optimization (NFCI)
This is step 2 of refactoring to solve PR26760:
https://llvm.org/bugs/show_bug.cgi?id=26760


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265951 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 15:43:41 +00:00
Sanjoy Das
5e07ce6898 This reverts commit r265913 and r265912
See PR27315

r265913: "[IndVars] Eliminate op.with.overflow when possible"

r265912: "[SCEV] See through op.with.overflow intrinsics"

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265950 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 15:26:18 +00:00
Petar Jovanovic
d2c18d6b60 [mips] Make Static a default relocation model for MIPS codegen
This change follows up defaults for GCC and Clang, so LLVM does not differ
from them. While number of the test files are touched with this change, they
all keep the old (expected) behaviour with the explicit option:
"-relocation-model=pic"
The tests that have not been touched are insensitive to relocation model.

Differential Revision: http://reviews.llvm.org/D17995


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265949 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 15:24:23 +00:00
Daniel Sanders
e085c90647 [mips] Trivial corrections to range checked immediates.
Summary:
SYNC has a 5-bit unsigned immediate.
Move MIPS16-specific pcrel16 operand to Mips16 files.

Reviewers: vkalintiris

Subscribers: dsanders, sdardis, llvm-commits

Differential Revision: http://reviews.llvm.org/D18755


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265947 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 15:20:40 +00:00
Sanjay Patel
0e3df21de9 [InstCombine] replace test that no longer works as intended
This is step 1 of refactoring to solve PR26760:
https://llvm.org/bugs/show_bug.cgi?id=26760



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265946 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 15:19:44 +00:00
Teresa Johnson
c456a3626a [ThinLTO] BitcodeWriter still requires Analysis library
This should fix bot failure:
http://bb.pgr.jp/builders/i686-mingw32-RA-on-linux/builds/9873

The bitcode writer unfortunately still needs the Analysis library, as it
replaces old dependence on BFI etc with dependence on new
ModuleSummaryAnalysis pass.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265945 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 14:59:07 +00:00
Ulrich Weigand
db55668f49 [SystemZ] README: remove an implemented idea, add some new ones
The note about conditional returns can now be removed, as they are
implemented. Let's also add 2 new ones in exchange.

Author: koriakin
Differential Revision: http://reviews.llvm.org/D18962



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265944 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 14:38:47 +00:00
Ulrich Weigand
4901036a89 [SystemZ] Add SVC instruction
This is going to be useful for inline assembly only.

Author: koriakin
Differential Revision: http://reviews.llvm.org/D18952



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265943 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 14:35:39 +00:00
Teresa Johnson
7ca333b425 [ThinLTO] Move summary computation from BitcodeWriter to new pass
Summary:
This is the first step in also serializing the index out to LLVM
assembly.

The per-module summary written to bitcode is moved out of the bitcode
writer and to a new analysis pass (ModuleSummaryIndexWrapperPass).
The pass itself uses a new builder class to compute index, and the
builder class is used directly in places where we don't have a pass
manager (e.g. llvm-as).

Because we are computing summaries outside of the bitcode writer, we no
longer can use value ids created by the bitcode writer's
ValueEnumerator. This required changing the reference graph edge type
to use a new ValueInfo class holding a union between a GUID (combined
index) and Value* (permodule index). The Value* are converted to the
appropriate value ID during bitcode writing.

Also, this enables removal of the BitWriter library's dependence on the
Analysis library that was previously required for the summary computation.

Reviewers: joker.eph

Subscribers: joker.eph, llvm-commits

Differential Revision: http://reviews.llvm.org/D18763

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265941 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 13:58:45 +00:00
Oliver Stannard
db3389c0dd [ARM] Avoid switching ARM/Thumb mode on .arch/.cpu directive
When we see a .arch or .cpu directive, we should try to avoid switching
ARM/Thumb mode if possible.

If we do have to switch modes, we also need to emit the correct mapping
symbol for the new ISA. We did not do this previously, so could emit
ARM code with Thumb mapping symbols (or vice-versa).

The GAS behaviour is to always stay in the same mode, and to emit an
error on any instructions seen when the current mode is not available on
the current target. We can't represent that situation easily (we assume
that Thumb mode is available if ModeThumb is set), so we differ from the
GAS behaviour when switching to a target that can't support the old
mode. I've added a warning for when this implicit mode-switch occurs.

Differential Revision: http://reviews.llvm.org/D18955



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265936 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 13:06:28 +00:00
Ulrich Weigand
8b66c0a76a [SystemZ] Support conditional indirect sibling calls via BCR
This adds a conditional variant of CallBR instruction, CallBCR. Also,
it can be fused with integer comparisons, resulting in one of the new
C*BCall instructions.

In addition to CallBRCL limitations, this has another one: it won't
trigger if the function to call isn't already in %r1 - see f22 in the
test for an example (it's also why the loads in tests are volatile).

Author: koriakin
Differential Revision: http://reviews.llvm.org/D18928



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265933 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 12:12:32 +00:00
Ulrich Weigand
65ca168806 [SystemZ] Remove incorrect CC use for C*BReturn instructions
These are fused compare-and-branches, so they obviously don't use CC.

Author: koriakin
Differential Revision: http://reviews.llvm.org/D18927



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265932 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 12:03:30 +00:00
Simon Pilgrim
942c2d35cf [X86] Added extra widening tests for and/xor/or bit operations
Add tests for bitcasting an illegal vector to/from a legal scalar

Additional tests requested for D18944

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265930 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 11:10:36 +00:00
Simon Pilgrim
c1307b1146 [X86] Added extra widening tests for and/xor/or bit operations
To make sure we're dealing with both cases of legal/illegal number of vector elements and legal/illegal vector element types

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265929 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 10:58:52 +00:00
Simon Pilgrim
46e6ec4d54 [X86] Regenerated sdglue test checks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265927 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 10:22:05 +00:00
Simon Pilgrim
6e01efbf2d [X86] Added widening tests for and/xor/or bit operations
Part of additional tests requested for D18944

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265925 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 10:16:27 +00:00
Andrey Turetskiy
26a9873b72 [X86] Restrict max long nop length for Lakemont.
Restrict the max length of long nops for Lakemont to 7. Experiments on MCU
benchmarks (Dhrystone, Coremark) show that this is the most optimal length.

Differential Revision: http://reviews.llvm.org/D18897



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265924 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-11 10:07:36 +00:00
Sanjoy Das
0a4c40265b [IndVars] Eliminate op.with.overflow when possible
Summary:
If we can prove that an op.with.overflow intrinsic does not overflow, we
can get rid of the intrinsic, and replace it with non-wrapping
arithmetic.

Reviewers: atrick, regehr

Subscribers: sanjoy, mcrosier, llvm-commits

Differential Revision: http://reviews.llvm.org/D18685

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265913 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-10 22:50:31 +00:00
Sanjoy Das
97ad447f43 [SCEV] See through op.with.overflow intrinsics
Summary:
This change teaches SCEV to see reduce `(extractvalue
0 (op.with.overflow X Y))` into `op X Y` (with a no-wrap tag if
possible).

Reviewers: atrick, regehr

Subscribers: mcrosier, mzolotukhin, llvm-commits

Differential Revision: http://reviews.llvm.org/D18684

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265912 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-10 22:50:26 +00:00
Mehdi Amini
2187597b34 Plumb the option to emit the ModuleHash in the bitcode through the bitcode writer APIs
From: Mehdi Amini <mehdi.amini@apple.com>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265907 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-10 21:07:19 +00:00
Simon Pilgrim
aef113a448 [X86][AVX512] Add vector integer division by constant tests
Added sdiv/srem and udiv/urem tests cases for 512 bit vectors.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265903 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-10 17:14:26 +00:00
Simon Pilgrim
51c5e3db07 [X86][AVX512BW] Add support for v64i8 multiplies
Extend the existing lowering of vXi8 multiplies to support v64i8 on avx512bw targets.

I added the Lower512IntArith helper function to help with this - not sure how often this could be used in the future, but it seemed better than putting all that logic inside LowerMUL.

Differential Revision: http://reviews.llvm.org/D18937

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265902 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-10 17:02:48 +00:00
Elena Demikhovsky
9f62954aaa Loop vectorization with uniform load
Vectorization cost of uniform load wasn't correctly calculated.
As a result, a simple loop that loads a uniform value wasn't vectorized.

Differential Revision: http://reviews.llvm.org/D18940



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265901 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-10 16:53:19 +00:00
Teresa Johnson
a6346264ce [ThinLTO] Remove unused parameter (NFC)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265900 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-10 15:17:26 +00:00
Simon Pilgrim
4470d9b31b [X86][AVX512] Regenerated mask op tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265898 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-10 14:16:03 +00:00
Jeroen Ketema
828014932b [OCaml] Expose the LLVM diagnostic handler
Differential Revision: http://reviews.llvm.org/D18891


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265897 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-10 13:55:53 +00:00
Craig Topper
e6319e78de [X86] Use for loops over types to reduce code for setting up operation actions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265893 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-10 05:39:32 +00:00
Craig Topper
efe8e4444a [X86] Remove unnecessary setOperationAction for SRA v2i64/v4i64 when VLX is suppored. This is already done for SSE2/AVX2 which VLX implies. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265892 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-10 05:39:28 +00:00
Xinliang David Li
5cc3ce758d Fix asan test failure
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265891 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-10 05:31:29 +00:00