platform/upstream/llvm.git
8 years agoLit C++11 Compatibility Patch #6
Charles Li [Mon, 11 Apr 2016 19:30:25 +0000 (19:30 +0000)]
Lit C++11 Compatibility Patch #6

Updated the expected diagnostics of 17 OpenMP tests.
The changes to each test are identical.

llvm-svn: 265982

8 years agoSimplify the creation of __rel[a]_iplt_{start,end}.
Rafael Espindola [Mon, 11 Apr 2016 19:14:59 +0000 (19:14 +0000)]
Simplify the creation of __rel[a]_iplt_{start,end}.

They can be regular DefinedSynthetic.

llvm-svn: 265981

8 years ago[DebugInfo] Fix even more tests to include DICompileunit.
Davide Italiano [Mon, 11 Apr 2016 18:53:27 +0000 (18:53 +0000)]
[DebugInfo] Fix even more tests to include DICompileunit.

llvm-svn: 265980

8 years agoAdd support for additional NSArray formatters
Enrico Granata [Mon, 11 Apr 2016 18:46:37 +0000 (18:46 +0000)]
Add support for additional NSArray formatters

llvm-svn: 265979

8 years agoAdd a formatter for zero-sized NSData
Enrico Granata [Mon, 11 Apr 2016 18:46:26 +0000 (18:46 +0000)]
Add a formatter for zero-sized NSData

llvm-svn: 265978

8 years agoEmit the module hash by default with -flto=thin.
Mehdi Amini [Mon, 11 Apr 2016 18:45:20 +0000 (18:45 +0000)]
Emit the module hash by default with -flto=thin.

Reviewers: tejohnson

Subscribers: joker.eph, cfe-commits

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

From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 265977

8 years agoTest commit.
Sriraman Tallam [Mon, 11 Apr 2016 18:40:50 +0000 (18:40 +0000)]
Test commit.

llvm-svn: 265976

8 years ago[Object] Make .alt_entry directive parsing MachO specific.
Lang Hames [Mon, 11 Apr 2016 18:33:45 +0000 (18:33 +0000)]
[Object] Make .alt_entry directive parsing MachO specific.

ELF and COFF will now treat .alt_entry like any other unrecognized directive.

llvm-svn: 265975

8 years agoFix missing DICompileUnits in testcases
Adrian Prantl [Mon, 11 Apr 2016 18:15:44 +0000 (18:15 +0000)]
Fix missing DICompileUnits in testcases

llvm-svn: 265974

8 years ago[InstCombine] consolidate tests for related bugs
Sanjay Patel [Mon, 11 Apr 2016 17:58:37 +0000 (17:58 +0000)]
[InstCombine] consolidate tests for related bugs

llvm-svn: 265973

8 years agoUse member initializers for all scalar fields of MachineFrameInfo to save boilerplate
Reid Kleckner [Mon, 11 Apr 2016 17:54:16 +0000 (17:54 +0000)]
Use member initializers for all scalar fields of MachineFrameInfo to save boilerplate

No functionality change.

llvm-svn: 265972

8 years agoCombine redundant stack realignment booleans in MachineFrameInfo
Reid Kleckner [Mon, 11 Apr 2016 17:54:03 +0000 (17:54 +0000)]
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.

llvm-svn: 265971

8 years agoadd FIXME comment; NFC
Sanjay Patel [Mon, 11 Apr 2016 17:35:57 +0000 (17:35 +0000)]
add FIXME comment; NFC

llvm-svn: 265970

8 years agoadd an assert for safety; NFC
Sanjay Patel [Mon, 11 Apr 2016 17:27:44 +0000 (17:27 +0000)]
add an assert for safety; NFC

llvm-svn: 265969

8 years agovariable names start with a capital letter; NFC
Sanjay Patel [Mon, 11 Apr 2016 17:25:23 +0000 (17:25 +0000)]
variable names start with a capital letter; NFC

llvm-svn: 265968

8 years ago[llvm-readobj] Add ELF hash histogram printing
Hemant Kulkarni [Mon, 11 Apr 2016 17:15:30 +0000 (17:15 +0000)]
[llvm-readobj] Add ELF hash histogram printing

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

llvm-svn: 265967

8 years agoAdd code comment/NFC
Xinliang David Li [Mon, 11 Apr 2016 17:13:08 +0000 (17:13 +0000)]
Add code comment/NFC

llvm-svn: 265966

8 years ago[InstCombine] use canEvaluateShiftedShift() to handle the lshr case (NFCI)
Sanjay Patel [Mon, 11 Apr 2016 17:11:55 +0000 (17:11 +0000)]
[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

llvm-svn: 265965

8 years ago[Clang][AVX512][BuiltIn] Adding avx512 ( psll{d|q}512,psllv{16si|8di},psra{d|q}512...
Michael Zuckerman [Mon, 11 Apr 2016 17:04:21 +0000 (17:04 +0000)]
[Clang][AVX512][BuiltIn] Adding avx512 ( psll{d|q}512,psllv{16si|8di},psra{d|q}512,psrav{16si|8di},pternlog{d|q}{128|256|512} ) builtin to clang

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

llvm-svn: 265964

8 years agoUpdate getting started docs
Reid Kleckner [Mon, 11 Apr 2016 17:02:34 +0000 (17:02 +0000)]
Update getting started docs

compiler-rt is optional. We often get email from users with compiler-rt
build errors who don't actually need compiler-rt. Marking it optional
should help them avoid those potential problems.

While I'm here, update a reference to the build directory and remove an
obsolete reference to llvm-gcc. Nobody today is under the impression
that Clang depends on GCC.

llvm-svn: 265963

8 years agoMake the distinct DISubprogram in this testcase really distinct.
Adrian Prantl [Mon, 11 Apr 2016 16:58:40 +0000 (16:58 +0000)]
Make the distinct DISubprogram in this testcase really distinct.

llvm-svn: 265962

8 years agoUpdate discriminator testcases to use proper NoDebug CUs instead of omitting
Adrian Prantl [Mon, 11 Apr 2016 16:58:35 +0000 (16:58 +0000)]
Update discriminator testcases to use proper NoDebug CUs instead of omitting
!llvm.dbg.cu.

llvm-svn: 265961

8 years ago[InstCombine] don't try to shift an illegal amount (PR26760)
Sanjay Patel [Mon, 11 Apr 2016 16:50:32 +0000 (16:50 +0000)]
[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.

llvm-svn: 265960

8 years agoMark TestPrintStackTraces as flaky on android arm
Pavel Labath [Mon, 11 Apr 2016 16:50:08 +0000 (16:50 +0000)]
Mark TestPrintStackTraces as flaky on android arm

llvm-svn: 265959

8 years ago[Driver] Fix a segfault in signal handlers
Pavel Labath [Mon, 11 Apr 2016 16:40:09 +0000 (16:40 +0000)]
[Driver] Fix a segfault in signal handlers

Summary:
If we recieve a SIGCONT or SIGTSTP, while the driver is shutting down (which, sometimes, we do,
for reasons which are not completely clear to me), we would crash to due a null pointer
dereference. Guard against this situation.

Reviewers: clayborg

Subscribers: lldb-commits

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

llvm-svn: 265958

8 years agoELF: Set FDE count in .eh_frame_hdr correctly.
Peter Collingbourne [Mon, 11 Apr 2016 16:40:08 +0000 (16:40 +0000)]
ELF: Set FDE count in .eh_frame_hdr correctly.

It is possible to have FDEs with duplicate PCs if ICF was able to merge
functions with FDEs, or if the input files for some reason contained duplicate
FDEs.  We previously weren't handling this correctly when producing the
contents of the .eh_frame_hdr section; we were dropping entries and leaving
null entries at the end of the section, which confused consumers of unwind
data, such as the backtrace() function.

Fix the bug by setting the FDE count to the number of FDEs actually emitted
into .eh_frame_hdr, rather than the number of FDEs in .eh_frame.

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

llvm-svn: 265957

8 years agoELF: Implement basic support for module asm in bitcode files.
Peter Collingbourne [Mon, 11 Apr 2016 16:39:43 +0000 (16:39 +0000)]
ELF: Implement basic support for module asm in bitcode files.

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

llvm-svn: 265956

8 years agoTargetRegisterInfo: Add getRegAsmName()
Tom Stellard [Mon, 11 Apr 2016 16:21:12 +0000 (16:21 +0000)]
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

llvm-svn: 265955

8 years ago[InstCombine] rename variables in shifted-shift helper function (NFCI)
Sanjay Patel [Mon, 11 Apr 2016 16:11:07 +0000 (16:11 +0000)]
[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

llvm-svn: 265954

8 years agoMore upgrading of old- and very-old-style debug info in testcases.
Adrian Prantl [Mon, 11 Apr 2016 15:53:44 +0000 (15:53 +0000)]
More upgrading of old- and very-old-style debug info in testcases.

llvm-svn: 265953

8 years ago[CLANG] [AVX512] [BUILTIN] Adding PSRA{Q|D|QI|DI}{128|256|512} builtin
Michael Zuckerman [Mon, 11 Apr 2016 15:46:39 +0000 (15:46 +0000)]
[CLANG] [AVX512] [BUILTIN] Adding PSRA{Q|D|QI|DI}{128|256|512} builtin

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

llvm-svn: 265952

8 years ago[InstCombine] add helper function for shift-shift optimization (NFCI)
Sanjay Patel [Mon, 11 Apr 2016 15:43:41 +0000 (15:43 +0000)]
[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

llvm-svn: 265951

8 years agoThis reverts commit r265913 and r265912
Sanjoy Das [Mon, 11 Apr 2016 15:26:18 +0000 (15:26 +0000)]
This reverts commit r265913 and r265912

See PR27315

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

r265912: "[SCEV] See through op.with.overflow intrinsics"
llvm-svn: 265950

8 years ago[mips] Make Static a default relocation model for MIPS codegen
Petar Jovanovic [Mon, 11 Apr 2016 15:24:23 +0000 (15:24 +0000)]
[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

llvm-svn: 265949

8 years agoRetry deletion of temporary files to avoid race conditions on Windows.
Adrian McCarthy [Mon, 11 Apr 2016 15:21:01 +0000 (15:21 +0000)]
Retry deletion of temporary files to avoid race conditions on Windows.

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

llvm-svn: 265948

8 years ago[mips] Trivial corrections to range checked immediates.
Daniel Sanders [Mon, 11 Apr 2016 15:20:40 +0000 (15:20 +0000)]
[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

llvm-svn: 265947

8 years ago[InstCombine] replace test that no longer works as intended
Sanjay Patel [Mon, 11 Apr 2016 15:19:44 +0000 (15:19 +0000)]
[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

llvm-svn: 265946

8 years ago[ThinLTO] BitcodeWriter still requires Analysis library
Teresa Johnson [Mon, 11 Apr 2016 14:59:07 +0000 (14:59 +0000)]
[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.

llvm-svn: 265945

8 years ago[SystemZ] README: remove an implemented idea, add some new ones
Ulrich Weigand [Mon, 11 Apr 2016 14:38:47 +0000 (14:38 +0000)]
[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

llvm-svn: 265944

8 years ago[SystemZ] Add SVC instruction
Ulrich Weigand [Mon, 11 Apr 2016 14:35:39 +0000 (14:35 +0000)]
[SystemZ] Add SVC instruction

This is going to be useful for inline assembly only.

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

llvm-svn: 265943

8 years agoAllow overflow of indices with constant dim-sizes.
Michael Kruse [Mon, 11 Apr 2016 14:34:08 +0000 (14:34 +0000)]
Allow overflow of indices with constant dim-sizes.

Allow overflow of indices into the next higher dimension if it has
constant size. E.g.

    float A[32][2];
    ((float*)A)[5];

is effectively the same as

    A[2][1];

This can happen since r265379 as a side effect if ScopDetection
recognizes an access as affine, but ScopInfo rejects the GetElementPtr.

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

llvm-svn: 265942

8 years ago[ThinLTO] Move summary computation from BitcodeWriter to new pass
Teresa Johnson [Mon, 11 Apr 2016 13:58:45 +0000 (13:58 +0000)]
[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

llvm-svn: 265941

8 years agoMark OffsetSec const. NFC.
Rafael Espindola [Mon, 11 Apr 2016 13:51:23 +0000 (13:51 +0000)]
Mark OffsetSec const. NFC.

llvm-svn: 265940

8 years agoRemove initializer that are always set by the constructor.
Rafael Espindola [Mon, 11 Apr 2016 13:47:35 +0000 (13:47 +0000)]
Remove initializer that are always set by the constructor.

llvm-svn: 265939

8 years agoMark a few methods const.
Rafael Espindola [Mon, 11 Apr 2016 13:44:05 +0000 (13:44 +0000)]
Mark a few methods const.

llvm-svn: 265938

8 years agoDo not bind a non-const reference to a rvalue. NFC.
Michael Kruse [Mon, 11 Apr 2016 13:24:29 +0000 (13:24 +0000)]
Do not bind a non-const reference to a rvalue. NFC.

MSVC warns with:
warning C4239: nonstandard extension used: 'initializing': conversion from 'llvm::DebugLoc' to 'llvm::DebugLoc &'
note: A non-const reference may only be bound to an lvalue

Change the reference to a const reference.

llvm-svn: 265937

8 years ago[ARM] Avoid switching ARM/Thumb mode on .arch/.cpu directive
Oliver Stannard [Mon, 11 Apr 2016 13:06:28 +0000 (13:06 +0000)]
[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

llvm-svn: 265936

8 years ago[Clang][AVX512][BuiltIn] Adding avx512 ( punpck{h|l}{dq|qdq}{128|256|512},rndscale...
Michael Zuckerman [Mon, 11 Apr 2016 12:32:31 +0000 (12:32 +0000)]
[Clang][AVX512][BuiltIn] Adding avx512 ( punpck{h|l}{dq|qdq}{128|256|512},rndscale{ss|sd}, {scalef{ss|sd|pd512|ps512} ) builtin to clang

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

llvm-svn: 265935

8 years ago[clang-format] Walk backwards from end() instead of forwards from rend().
Benjamin Kramer [Mon, 11 Apr 2016 12:19:19 +0000 (12:19 +0000)]
[clang-format] Walk backwards from end() instead of forwards from rend().

This should've been forwards from rbegin(), reverse iterators are just
too confusing to be used by mere mortals. Fixes out-of-bounds walks over
the list.

llvm-svn: 265934

8 years ago[SystemZ] Support conditional indirect sibling calls via BCR
Ulrich Weigand [Mon, 11 Apr 2016 12:12:32 +0000 (12:12 +0000)]
[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

llvm-svn: 265933

8 years ago[SystemZ] Remove incorrect CC use for C*BReturn instructions
Ulrich Weigand [Mon, 11 Apr 2016 12:03:30 +0000 (12:03 +0000)]
[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

llvm-svn: 265932

8 years agoRemove unintentional return
Bhushan D. Attarde [Mon, 11 Apr 2016 11:19:37 +0000 (11:19 +0000)]
Remove unintentional return

llvm-svn: 265931

8 years ago[X86] Added extra widening tests for and/xor/or bit operations
Simon Pilgrim [Mon, 11 Apr 2016 11:10:36 +0000 (11:10 +0000)]
[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

llvm-svn: 265930

8 years ago[X86] Added extra widening tests for and/xor/or bit operations
Simon Pilgrim [Mon, 11 Apr 2016 10:58:52 +0000 (10:58 +0000)]
[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

llvm-svn: 265929

8 years ago[Clang][AVX512][BuiltIn] Adding avx512 ( ptest{n}m{b|w}{128|256|512} ) builtin to...
Michael Zuckerman [Mon, 11 Apr 2016 10:22:07 +0000 (10:22 +0000)]
[Clang][AVX512][BuiltIn] Adding avx512 ( ptest{n}m{b|w}{128|256|512} ) builtin to clang

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

llvm-svn: 265928

8 years ago[X86] Regenerated sdglue test checks
Simon Pilgrim [Mon, 11 Apr 2016 10:22:05 +0000 (10:22 +0000)]
[X86] Regenerated sdglue test checks

llvm-svn: 265927

8 years agoDon't clutter the test directory with temporary IR files.
Benjamin Kramer [Mon, 11 Apr 2016 10:16:37 +0000 (10:16 +0000)]
Don't clutter the test directory with temporary IR files.

-emit-llvm emits a file, -emit-llvm-only doesn't.

llvm-svn: 265926

8 years ago[X86] Added widening tests for and/xor/or bit operations
Simon Pilgrim [Mon, 11 Apr 2016 10:16:27 +0000 (10:16 +0000)]
[X86] Added widening tests for and/xor/or bit operations

Part of additional tests requested for D18944

llvm-svn: 265925

8 years ago[X86] Restrict max long nop length for Lakemont.
Andrey Turetskiy [Mon, 11 Apr 2016 10:07:36 +0000 (10:07 +0000)]
[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

llvm-svn: 265924

8 years ago[sanitizer] Restore stderr when using forkpty() to spawn external symbolizer
Kuba Brecka [Mon, 11 Apr 2016 09:27:09 +0000 (09:27 +0000)]
[sanitizer] Restore stderr when using forkpty() to spawn external symbolizer

In `AtosSymbolizer`, we're using `forkpty()` to create a new pseudo-terminal to communicate with the `atos` tool (we need that to avoid output buffering in interactive mode). This however redirects both stdout and stderr into a single stream, so when we read the output, we can't distinguish between errors and standard replies. Let's save&restore stderr to avoid that.

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

llvm-svn: 265923

8 years agoclang-format: [JS] Test for parameter annotations.
Martin Probst [Mon, 11 Apr 2016 09:17:57 +0000 (09:17 +0000)]
clang-format: [JS] Test for parameter annotations.

Summary: Just to ensure no regressions, this already works fine.

Reviewers: djasper

Subscribers: cfe-commits, klimek

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

llvm-svn: 265922

8 years agoFix makefile for TestMiThreadInfo after rL265858 (2nd try)
Tamas Berghammer [Mon, 11 Apr 2016 08:54:57 +0000 (08:54 +0000)]
Fix makefile for TestMiThreadInfo after rL265858 (2nd try)

llvm-svn: 265921

8 years agoFix makefile for TestMiThreadInfo after rL265858
Tamas Berghammer [Mon, 11 Apr 2016 08:45:01 +0000 (08:45 +0000)]
Fix makefile for TestMiThreadInfo after rL265858

The makefile was explicitly setting LDFLAGS what is breaking some rules
in the global makefile.

llvm-svn: 265920

8 years ago[tsan] Replace 'not' with '%deflake' in gcd-apply-race.mm Darwin test.
Kuba Brecka [Mon, 11 Apr 2016 08:38:35 +0000 (08:38 +0000)]
[tsan] Replace 'not' with '%deflake' in gcd-apply-race.mm Darwin test.

llvm-svn: 265919

8 years agoRemove redundant conditions of the form (A || (!A && B)) -> (A || B)
Benjamin Kramer [Mon, 11 Apr 2016 08:26:13 +0000 (08:26 +0000)]
Remove redundant conditions of the form (A || (!A && B)) -> (A || B)

Found by cppcheck! PR27286 PR27287 PR27288 PR27289

llvm-svn: 265918

8 years ago[GCC] Attribute ifunc support in clang
Dmitry Polukhin [Mon, 11 Apr 2016 07:48:59 +0000 (07:48 +0000)]
[GCC] Attribute ifunc support in clang

This patch add support for GCC attribute((ifunc("resolver"))) for
targets that use ELF as object file format. In general ifunc is a
special kind of function alias with type @gnu_indirect_function. LLVM
patch http://reviews.llvm.org/D15525

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

llvm-svn: 265917

8 years agoclang-format: [JS] do not insert semicolons after wrapped annotations.
Martin Probst [Mon, 11 Apr 2016 07:35:57 +0000 (07:35 +0000)]
clang-format: [JS] do not insert semicolons after wrapped annotations.

Reviewers: djasper

Subscribers: klimek

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

llvm-svn: 265916

8 years ago[Clang][AVX512][BuiltIn] Adding avx512 ( vperm{i|t}2var, vpermil{var}{ps|pd}{256...
Michael Zuckerman [Mon, 11 Apr 2016 07:15:34 +0000 (07:15 +0000)]
[Clang][AVX512][BuiltIn] Adding avx512 ( vperm{i|t}2var, vpermil{var}{ps|pd}{256|512} ) builtin to clang.

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

llvm-svn: 265915

8 years agoImplement LWG#680, which was missed lo these many moons ago, and was reported as...
Marshall Clow [Mon, 11 Apr 2016 03:54:53 +0000 (03:54 +0000)]
Implement LWG#680, which was missed lo these many moons ago, and was reported as bug #27259. As a drive-by fix, replace the hand-rolled equivalent to addressof in __wrap_iter with the real thing.

llvm-svn: 265914

8 years ago[IndVars] Eliminate op.with.overflow when possible
Sanjoy Das [Sun, 10 Apr 2016 22:50:31 +0000 (22:50 +0000)]
[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

llvm-svn: 265913

8 years ago[SCEV] See through op.with.overflow intrinsics
Sanjoy Das [Sun, 10 Apr 2016 22:50:26 +0000 (22:50 +0000)]
[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

llvm-svn: 265912

8 years agoRemove leftovers from previous linker experiments.
Davide Italiano [Sun, 10 Apr 2016 22:19:50 +0000 (22:19 +0000)]
Remove leftovers from previous linker experiments.

llvm-svn: 265911

8 years ago[ELF] Do not skip relocation scanning checking if the symbol gets dynamic COPY reloca...
Simon Atanasyan [Sun, 10 Apr 2016 21:48:55 +0000 (21:48 +0000)]
[ELF] Do not skip relocation scanning checking if the symbol gets dynamic COPY relocation already

It is possible that the same symbol referenced by two kinds of
relocations at the same time. The first type requires say GOT entry
creation, the second type requires dynamic copy relocation. For MIPS
targets they might be R_MIPS_GOT16 and R_MIPS_HI16 relocations. For X86
target they might be R_386_GOT32 and R_386_32 respectively.

Now LLD never creates GOT entry for a symbol if this symbol already has
related copy relocation. This patch solves this problem.

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

llvm-svn: 265910

8 years agoPlumb the option to emit the `ModuleHash` in the bitcode through the bitcode writer...
Mehdi Amini [Sun, 10 Apr 2016 21:07:19 +0000 (21:07 +0000)]
Plumb the option to emit the `ModuleHash` in the bitcode through the bitcode writer APIs

From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 265907

8 years agoAdd a ThreadSanitizer testcase that tests multiple reported issues.
Kuba Brecka [Sun, 10 Apr 2016 19:29:40 +0000 (19:29 +0000)]
Add a ThreadSanitizer testcase that tests multiple reported issues.

llvm-svn: 265906

8 years agoProvide more information in ThreadSanitizer's JSON data. Move remaining TSan logic...
Kuba Brecka [Sun, 10 Apr 2016 18:57:38 +0000 (18:57 +0000)]
Provide more information in ThreadSanitizer's JSON data.  Move remaining TSan logic from SBThread to InstrumentationRuntime plugin.

llvm-svn: 265905

8 years ago[Clang][AVX512][BuiltIn] Adding avx512 ( vcvt ) builtin to clang
Michael Zuckerman [Sun, 10 Apr 2016 17:24:03 +0000 (17:24 +0000)]
[Clang][AVX512][BuiltIn] Adding avx512 ( vcvt ) builtin to clang

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

llvm-svn: 265904

8 years ago[X86][AVX512] Add vector integer division by constant tests
Simon Pilgrim [Sun, 10 Apr 2016 17:14:26 +0000 (17:14 +0000)]
[X86][AVX512] Add vector integer division by constant tests

Added sdiv/srem and udiv/urem tests cases for 512 bit vectors.

llvm-svn: 265903

8 years ago[X86][AVX512BW] Add support for v64i8 multiplies
Simon Pilgrim [Sun, 10 Apr 2016 17:02:48 +0000 (17:02 +0000)]
[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

llvm-svn: 265902

8 years agoLoop vectorization with uniform load
Elena Demikhovsky [Sun, 10 Apr 2016 16:53:19 +0000 (16:53 +0000)]
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

llvm-svn: 265901

8 years ago[ThinLTO] Remove unused parameter (NFC)
Teresa Johnson [Sun, 10 Apr 2016 15:17:26 +0000 (15:17 +0000)]
[ThinLTO] Remove unused parameter (NFC)

llvm-svn: 265900

8 years agoCorrect pg instrumentation for AArch64
Saleem Abdulrasool [Sun, 10 Apr 2016 14:29:55 +0000 (14:29 +0000)]
Correct pg instrumentation for AArch64

It seems that there was a miscommunication between Renato and I, and the
original behaviour of AArch64 was to be preserved and not to mirror the new
behaviour.  Restore the original behaviour for AArch64.  Addresses post-commit
review comments from Renato Golin.

llvm-svn: 265899

8 years ago[X86][AVX512] Regenerated mask op tests
Simon Pilgrim [Sun, 10 Apr 2016 14:16:03 +0000 (14:16 +0000)]
[X86][AVX512] Regenerated mask op tests

llvm-svn: 265898

8 years ago[OCaml] Expose the LLVM diagnostic handler
Jeroen Ketema [Sun, 10 Apr 2016 13:55:53 +0000 (13:55 +0000)]
[OCaml] Expose the LLVM diagnostic handler

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

llvm-svn: 265897

8 years agoAdding avx512 (unpck{h|l}{pd|ps}, rcp14{pd|ps}{128|256},vplzcnt{d|q} ) builtin to...
Michael Zuckerman [Sun, 10 Apr 2016 12:54:23 +0000 (12:54 +0000)]
Adding avx512 (unpck{h|l}{pd|ps}, rcp14{pd|ps}{128|256},vplzcnt{d|q} ) builtin to clang

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

llvm-svn: 265896

8 years ago[Clang][AVX512][BuiltIn] Adding avx512 ( store ) builtin to clang
Michael Zuckerman [Sun, 10 Apr 2016 10:51:04 +0000 (10:51 +0000)]
[Clang][AVX512][BuiltIn] Adding avx512 ( store ) builtin to clang

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

llvm-svn: 265895

8 years agoAllow pointer expressions in SCEVs again.
Johannes Doerfert [Sun, 10 Apr 2016 09:50:10 +0000 (09:50 +0000)]
Allow pointer expressions in SCEVs again.

  In r247147 we disabled pointer expressions because the IslExprBuilder did not
  fully support them. This patch reintroduces them by simply treating them as
  integers. The only special handling for pointers that is left detects the
  comparison of two address_of operands and uses an unsigned compare.

llvm-svn: 265894

8 years ago[X86] Use for loops over types to reduce code for setting up operation actions.
Craig Topper [Sun, 10 Apr 2016 05:39:32 +0000 (05:39 +0000)]
[X86] Use for loops over types to reduce code for setting up operation actions.

llvm-svn: 265893

8 years ago[X86] Remove unnecessary setOperationAction for SRA v2i64/v4i64 when VLX is suppored...
Craig Topper [Sun, 10 Apr 2016 05:39:28 +0000 (05:39 +0000)]
[X86] Remove unnecessary setOperationAction for SRA v2i64/v4i64 when VLX is suppored. This is already done for SSE2/AVX2 which VLX implies. NFC

llvm-svn: 265892

8 years agoFix asan test failure
Xinliang David Li [Sun, 10 Apr 2016 05:31:29 +0000 (05:31 +0000)]
Fix asan test failure

llvm-svn: 265891

8 years ago[PGO] Fix deserialize bug
Xinliang David Li [Sun, 10 Apr 2016 03:32:02 +0000 (03:32 +0000)]
[PGO] Fix deserialize bug

Raw function pointer collected by value
profile data may be from external functions
that are not instrumented. They won't have
mapping data to be used by the deserializer.
Force the value to be 0 in this case.

llvm-svn: 265890

8 years agotest: add additional tests for SVN r265888
Saleem Abdulrasool [Sun, 10 Apr 2016 03:31:09 +0000 (03:31 +0000)]
test: add additional tests for SVN r265888

Add test cases for AArch64 as well as that was changed as part of that change.

llvm-svn: 265889

8 years agoAdd support for __gnu_mcount_nc as the pg interface
Saleem Abdulrasool [Sun, 10 Apr 2016 03:19:47 +0000 (03:19 +0000)]
Add support for __gnu_mcount_nc as the pg interface

This adds support to optionally support using `__gnu_mcount_nc` as the mcount
interface rather than `mcount` for Linux and EABI.  The other targets do not
provide an implementation for `__gnu_mcount_nc`.  This can be activated via the
`-meabi gnu` flag.

Resolves PR23969.

llvm-svn: 265888

8 years agoClean up test case
Xinliang David Li [Sun, 10 Apr 2016 02:35:53 +0000 (02:35 +0000)]
Clean up test case

llvm-svn: 265887

8 years ago[CodeGen] Don't assume that fixed stack objects are aligned in a stack-realigned...
Charles Davis [Sat, 9 Apr 2016 23:34:42 +0000 (23:34 +0000)]
[CodeGen] Don't assume that fixed stack objects are aligned in a stack-realigned function.

Summary:
After we make the adjustment, we can assume that for local allocas, but
not for stack parameters, the return address, or any other fixed stack
object (which has a negative offset and therefore lies prior to the
adjusted SP).

Fixes PR26662.

Reviewers: hfinkel, qcolombet, rnk

Subscribers: rnk, llvm-commits

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

llvm-svn: 265886

8 years ago[COFF] SmallVector<char, 0> -> SmallString<0>.
Davide Italiano [Sat, 9 Apr 2016 23:00:31 +0000 (23:00 +0000)]
[COFF] SmallVector<char, 0> -> SmallString<0>.

This way we're consistent between ELF and COFF.

llvm-svn: 265885

8 years ago[FIX] Do not allow select as a base pointer in the SCoP region
Johannes Doerfert [Sat, 9 Apr 2016 21:57:13 +0000 (21:57 +0000)]
[FIX] Do not allow select as a base pointer in the SCoP region

llvm-svn: 265884

8 years agoDo not allow exception handling code in SCoPs
Johannes Doerfert [Sat, 9 Apr 2016 21:55:58 +0000 (21:55 +0000)]
Do not allow exception handling code in SCoPs

llvm-svn: 265883

8 years agoAdd __isl_give annotations to return types [NFC]
Johannes Doerfert [Sat, 9 Apr 2016 21:55:23 +0000 (21:55 +0000)]
Add __isl_give annotations to return types [NFC]

llvm-svn: 265882

8 years ago[MC] support TLSDESC and TLSCALL / GNU2 tls dialect
Davide Italiano [Sat, 9 Apr 2016 20:32:33 +0000 (20:32 +0000)]
[MC] support TLSDESC and TLSCALL / GNU2 tls dialect

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

llvm-svn: 265881