platform/upstream/llvm.git
8 years agoAMDGPU: Match fmed3 patterns with legacy fmin/fmax
Matt Arsenault [Thu, 28 Jan 2016 20:53:48 +0000 (20:53 +0000)]
AMDGPU: Match fmed3 patterns with legacy fmin/fmax

llvm-svn: 259090

8 years agoAMDGPU: Match some med3 patterns
Matt Arsenault [Thu, 28 Jan 2016 20:53:42 +0000 (20:53 +0000)]
AMDGPU: Match some med3 patterns

llvm-svn: 259089

8 years agoAMDGPU: Set DX10Clamp bit
Matt Arsenault [Thu, 28 Jan 2016 20:53:35 +0000 (20:53 +0000)]
AMDGPU: Set DX10Clamp bit

llvm-svn: 259088

8 years agoFixed compilation issue.
Elena Demikhovsky [Thu, 28 Jan 2016 20:36:46 +0000 (20:36 +0000)]
Fixed compilation issue.

llvm-svn: 259087

8 years agoFix build after rL259070.
Chaoren Lin [Thu, 28 Jan 2016 20:25:46 +0000 (20:25 +0000)]
Fix build after rL259070.

llvm-svn: 259086

8 years ago[cfi] Simplify the code in CfiSlowPathCommon.
Evgeniy Stepanov [Thu, 28 Jan 2016 19:58:26 +0000 (19:58 +0000)]
[cfi] Simplify the code in CfiSlowPathCommon.

llvm-svn: 259085

8 years agoUpdate lldb for API change in clang r259070.
Manman Ren [Thu, 28 Jan 2016 19:55:50 +0000 (19:55 +0000)]
Update lldb for API change in clang r259070.

llvm-svn: 259084

8 years agoadd masked intrinsic tests to show missed opportunities
Sanjay Patel [Thu, 28 Jan 2016 19:54:20 +0000 (19:54 +0000)]
add masked intrinsic tests to show missed opportunities

llvm-svn: 259083

8 years ago[cfi] Get rid of a fixed size buffer for the library path in test.
Evgeniy Stepanov [Thu, 28 Jan 2016 19:37:03 +0000 (19:37 +0000)]
[cfi] Get rid of a fixed size buffer for the library path in test.

llvm-svn: 259082

8 years agoInclude RecordDecls from anonymous unions in the AST.
Nico Weber [Thu, 28 Jan 2016 19:25:00 +0000 (19:25 +0000)]
Include RecordDecls from anonymous unions in the AST.

For

  void f() {
    union { int i; };
  }

clang used to omit the RecordDecl from the anonymous union from the AST.
That's because the code creating it only called PushOnScopeChains(), which adds
it to the current DeclContext, which here is the function's DeclContext. But
RecursiveASTVisitor doesn't descent into all decls in a FunctionDecl.

Instead, for DeclContexts that contain statements, return the RecordDecl so
that it can be included in the DeclStmt containing the VarDecl for the union.

Interesting bits from the AST before this change:

|-FunctionDecl
| `-CompoundStmt
|   |-DeclStmt
|   | `-VarDecl 0x589cd60 <col:3> col:3 implicit used 'union (anonymous at test.cc:3:3)' callinit

After this change:

-FunctionDecl
| `-CompoundStmt
|   |-DeclStmt
|   | |-CXXRecordDecl 0x4612e48 <col:3, col:18> col:3 union definition
|   | | |-FieldDecl 0x4612f70 <col:11, col:15> col:15 referenced i 'int'
|   | `-VarDecl 0x4613010 <col:3> col:3 implicit used 'union (anonymous at test.cc:3:3)' callinit

This is now closer to how anonymous struct and unions are represented as
members of structs.  It also enabled deleting some one-off code in the
template instantiation code.

Finally, it fixes a crash with ASTMatchers, see the included test case
(this fixes http://crbug.com/580749).

llvm-svn: 259079

8 years agoFix an issue where the type <formatter> list command would not accept a valid argumen...
Enrico Granata [Thu, 28 Jan 2016 19:21:38 +0000 (19:21 +0000)]
Fix an issue where the type <formatter> list command would not accept a valid argument and instead error out complaining about a malformed regex

rdar://problem/24380025

llvm-svn: 259078

8 years agoRemove unused parameter.
Nico Weber [Thu, 28 Jan 2016 19:12:32 +0000 (19:12 +0000)]
Remove unused parameter.

llvm-svn: 259077

8 years ago[SplitModule] In split module utility we should never separate alias with its aliasee.
Sergei Larin [Thu, 28 Jan 2016 18:59:28 +0000 (18:59 +0000)]
[SplitModule] In split module utility we should never separate alias with its aliasee.

Summary: When splitting module with preserving locals, we currently do not handle case of global alias being separated with its aliasee.

Subscribers: llvm-commits

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

llvm-svn: 259075

8 years agoAddress buildbot fallout from r259065
David Majnemer [Thu, 28 Jan 2016 18:59:04 +0000 (18:59 +0000)]
Address buildbot fallout from r259065

llvm-svn: 259074

8 years agoClass Property: class property and instance property can have the same name.
Manman Ren [Thu, 28 Jan 2016 18:49:28 +0000 (18:49 +0000)]
Class Property: class property and instance property can have the same name.

Add "enum ObjCPropertyQueryKind" to a few APIs that used to only take the name
of the property: ObjCPropertyDecl::findPropertyDecl,
ObjCContainerDecl::FindPropertyDeclaration,
ObjCInterfaceDecl::FindPropertyVisibleInPrimaryClass,
ObjCImplDecl::FindPropertyImplDecl, and Sema::ActOnPropertyImplDecl.

ObjCPropertyQueryKind currently has 3 values:
OBJC_PR_query_unknown, OBJC_PR_query_instance, OBJC_PR_query_class

This extra parameter specifies that we are looking for an instance property with
the given name, or a class property with the given name, or any property with
the given name (if both exist, the instance property will be returned).

rdar://23891898

llvm-svn: 259070

8 years agoELF: Rename error -> fatal and redefine error as a non-noreturn function.
Rui Ueyama [Thu, 28 Jan 2016 18:40:06 +0000 (18:40 +0000)]
ELF: Rename error -> fatal and redefine error as a non-noreturn function.

In many situations, we don't want to exit at the first error even in the
process model. For example, it is better to report all undefined symbols
rather than reporting the first one that the linker picked up randomly.

In order to handle such errors, we don't need to wrap everything with
ErrorOr (thanks for David Blaikie for pointing this out!) Instead, we
can set a flag to record the fact that we found an error and keep it
going until it reaches a reasonable checkpoint.

This idea should be applicable to other places. For example, we can
ignore broken relocations and check for errors after visiting all relocs.

In this patch, I rename error to fatal, and introduce another version of
error which doesn't call exit. That function instead sets HasError to true.
Once HasError becomes true, it stays true, so that we know that there
was an error if it is true.

I think introducing a non-noreturn error reporting function is by itself
a good idea, and it looks to me that this also provides a gradual path
towards lld-as-a-library (or at least embed-lld-to-your-program) without
sacrificing code readability with lots of ErrorOr's.

http://reviews.llvm.org/D16641

llvm-svn: 259069

8 years agoMinor cleanup /NFC
Xinliang David Li [Thu, 28 Jan 2016 18:37:43 +0000 (18:37 +0000)]
Minor cleanup /NFC

llvm-svn: 259068

8 years ago[PGO] test case cleanups
Xinliang David Li [Thu, 28 Jan 2016 18:25:53 +0000 (18:25 +0000)]
[PGO] test case cleanups

1. Make test case more focused and robust by focusing on what to be tested (linkage, icall) -- make it easier to validate
2. Testing linkages of data and counter variables instead of names. Counters and data are more relavant to be tested.

llvm-svn: 259067

8 years ago[X86] Don't transform X << 1 to X + X during type legalization
David Majnemer [Thu, 28 Jan 2016 18:20:05 +0000 (18:20 +0000)]
[X86] Don't transform X << 1 to X + X during type legalization

While legalizing a 64-bit shift left by 1, the following occurs:

We split the shift operand in half: a high half and a low half.
We then create an ADDC with the low half and a ADDE with the high half +
the carry bit from the ADDC.

This is problematic if X is any_ext'd because the high half computation
is now undef + undef + carry bit and there is no way to ensure that the
two undef values had the same bitwise representation.  This results in
the lowest bit in the high half turning into garbage.

Instead, do not try to turn shifts into arithmetic during type
legalization.

This fixes PR26350.

llvm-svn: 259065

8 years agoFix strange indent.
Nico Weber [Thu, 28 Jan 2016 18:06:31 +0000 (18:06 +0000)]
Fix strange indent.

llvm-svn: 259063

8 years ago[PlaceSafepoints] Clean up tests; NFC
Sanjoy Das [Thu, 28 Jan 2016 18:01:03 +0000 (18:01 +0000)]
[PlaceSafepoints] Clean up tests; NFC

Use `opt < %s` instead of `opt %s` as specified in
http://llvm.org/docs/TestingGuide.html#fragile-tests.

llvm-svn: 259062

8 years ago[Coverage] Use a set to track visited FileIDs (NFC)
Vedant Kumar [Thu, 28 Jan 2016 17:52:18 +0000 (17:52 +0000)]
[Coverage] Use a set to track visited FileIDs (NFC)

llvm-svn: 259061

8 years agoMake header self-contained.
Benjamin Kramer [Thu, 28 Jan 2016 17:48:29 +0000 (17:48 +0000)]
Make header self-contained.

llvm-svn: 259060

8 years agoAMDGPU: waitcnt operand fixes
Tom Stellard [Thu, 28 Jan 2016 17:13:44 +0000 (17:13 +0000)]
AMDGPU: waitcnt operand fixes

Summary:
Allow lgkmcnt up to 0xF (hardware allows that).
Fix mask for ExpCnt in AMDGPUInstPrinter.

Reviewers: tstellarAMD, arsenm

Subscribers: arsenm

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

Patch by: Nikolay Haustov

llvm-svn: 259059

8 years ago[X86] Test commit, fixed typos in comments. NFC.
Mitch Bodart [Thu, 28 Jan 2016 16:40:51 +0000 (16:40 +0000)]
[X86] Test commit, fixed typos in comments.  NFC.

llvm-svn: 259057

8 years ago[Renderscript] Clang-format the renderscript plugin.
Aidan Dodds [Thu, 28 Jan 2016 16:39:44 +0000 (16:39 +0000)]
[Renderscript] Clang-format the renderscript plugin.

Run clang-format over the renderscript plugin and fix common formatting deviations.

llvm-svn: 259056

8 years ago[PlaceSafepoints] Minor test cleanup; NFC
Sanjoy Das [Thu, 28 Jan 2016 16:11:27 +0000 (16:11 +0000)]
[PlaceSafepoints] Minor test cleanup; NFC

There is no need to place quotes around some_call and
personality_function.

llvm-svn: 259055

8 years agoAMDGPU: Move subtarget specific code out of AMDGPUInstrInfo.cpp
Tom Stellard [Thu, 28 Jan 2016 16:04:37 +0000 (16:04 +0000)]
AMDGPU: Move subtarget specific code out of AMDGPUInstrInfo.cpp

Summary:
Also delete all the stub functions that are identical to the
implementations in TargetInstrInfo.cpp.

Reviewers: arsenm

Subscribers: arsenm, llvm-commits

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

llvm-svn: 259054

8 years ago[LICM] Keep metadata on control equivalent hoists
Sanjoy Das [Thu, 28 Jan 2016 15:51:58 +0000 (15:51 +0000)]
[LICM] Keep metadata on control equivalent hoists

Summary:
If the instruction we're hoisting out of a loop into its preheader is
guaranteed to have executed in the loop, then the metadata associated
with the instruction (e.g. !range or !dereferenceable) is valid in the
preheader.  This is because once we're in the preheader, we know we're
eventually going to reach the location the metadata was valid at.

This change makes LICM smarter around this, and helps it recognize cases
like these:

```
  do {
    int a = *ptr; !range !0
    ...
  } while (i++ < N);
```

to

```
  int a = *ptr; !range !0
  do {
    ...
  } while (i++ < N);
```

Earlier we'd drop the `!range` metadata after hoisting the load from
`ptr`.

Reviewers: igor-laevsky

Subscribers: mcrosier, llvm-commits

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

llvm-svn: 259053

8 years ago[AArch64] Set MMOs on pre- and post-index instructions.
Chad Rosier [Thu, 28 Jan 2016 15:38:24 +0000 (15:38 +0000)]
[AArch64] Set MMOs on pre- and post-index instructions.

Without the MMOs the MI scheduler is unable to reason about the dependencies of
these instructions.

llvm-svn: 259052

8 years ago[x86] Merge multiple calls to DAG.getTargetLoweringInfo(). NFC.
Simon Pilgrim [Thu, 28 Jan 2016 15:29:11 +0000 (15:29 +0000)]
[x86] Merge multiple calls to DAG.getTargetLoweringInfo(). NFC.

llvm-svn: 259050

8 years agoImprove efficiency of handling unmapped subprogram metadata
Teresa Johnson [Thu, 28 Jan 2016 15:08:09 +0000 (15:08 +0000)]
Improve efficiency of handling unmapped subprogram metadata

The stripNullSubprograms function is very inefficient because
it walks all subprograms in all compile units in the dest module
any time a new module is linked in. For LTO in particular this will
get increasingly expensive as more modules are linked.

This patch improves the efficiency in several ways. The first is that
no scanning is necessary when there were no unneeded subprograms
identified in the first place. The second is that only the newly-linked
module's compile unit metadata should be examined.

Fixes PR26346.

llvm-svn: 259049

8 years ago[libcxx] Work around for clang calling GAS after having already failed.
Daniel Sanders [Thu, 28 Jan 2016 13:49:33 +0000 (13:49 +0000)]
[libcxx] Work around for clang calling GAS after having already failed.

Summary:
This is a workaround to a clang bug which causes libcxx tests to fail in the 3.8
release. The clang bug is currently being investigated. It seems that clang
does not stop after frontend errors when using -verify and -fno-integrated-as
(or when this is the default). This patch adds -fsyntax-only to prevent GAS
from being called, fixing the libcxx failures.

PR26277

Patch by Eric Fiselier

Reviewers: mclow.lists, hans, EricWF

Subscribers: cfe-commits

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

llvm-svn: 259046

8 years agoRevert r259035, it introduces a cyclic library dependency
Oliver Stannard [Thu, 28 Jan 2016 13:19:47 +0000 (13:19 +0000)]
Revert r259035, it introduces a cyclic library dependency

llvm-svn: 259045

8 years agoAVX512: Fix truncate v32i8 to v32i1 lowering implementation.
Igor Breger [Thu, 28 Jan 2016 13:19:25 +0000 (13:19 +0000)]
AVX512: Fix truncate v32i8 to v32i1 lowering implementation.
Enable truncate 128/256bit packed byte/word with AVX512BW but without AVX512VL, use 512bit instructions.

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

llvm-svn: 259044

8 years agoRevert r259036, it introduces a cyclic library dependency
Oliver Stannard [Thu, 28 Jan 2016 13:09:49 +0000 (13:09 +0000)]
Revert r259036, it introduces a cyclic library dependency

llvm-svn: 259043

8 years agoFix const cast error for MSVC2015 build.
Aidan Dodds [Thu, 28 Jan 2016 13:05:21 +0000 (13:05 +0000)]
Fix const cast error for MSVC2015 build.

The Visual Studio 2015 build was failing with the following error:
error C2440: 'initializing': cannot convert from 'const char [12]' to 'char *'

This should fix the problem by initializing a non const char array, instead of taking a pointer to const static data.

llvm-svn: 259042

8 years agoRemove autotools build system
Michael Kruse [Thu, 28 Jan 2016 12:00:33 +0000 (12:00 +0000)]
Remove autotools build system

The autotools build system is based on and requires LLVM's autotools
build system to work, which has been depricated and finally removed in
r258861. Consequently we also remove the autotools build system from
Polly.

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

llvm-svn: 259041

8 years agoUnbreak the wasm backend again after r259035.
Benjamin Kramer [Thu, 28 Jan 2016 11:26:34 +0000 (11:26 +0000)]
Unbreak the wasm backend again after r259035.

llvm-svn: 259040

8 years ago[mips][microMIPS] Disable FastISel for microMIPS
Zoran Jovanovic [Thu, 28 Jan 2016 11:08:03 +0000 (11:08 +0000)]
[mips][microMIPS] Disable FastISel for microMIPS

Author: milena.vujosevic.janicic
Reviewers: dsanders

FastIsel is not supported for microMIPS, thus it needs to be disabled.
Test micromips-zero-mat-uses.ll is deleted since the tested sequence of instructions is not generated for microMIPS without FastISel.
Differential Revision: http://reviews.llvm.org/D15892

llvm-svn: 259039

8 years ago[OMPT] Add support for ompt_event_task_dependences and ompt_event_task_dependence_pair
Jonas Hahnfeld [Thu, 28 Jan 2016 10:39:52 +0000 (10:39 +0000)]
[OMPT] Add support for ompt_event_task_dependences and ompt_event_task_dependence_pair

The attached patch adds support for ompt_event_task_dependences and
ompt_event_task_dependence_pair events from the OMPT specification [1]. These
events only apply to OpenMP 4.0 and 4.1 (aka 4.5) because task dependencies
were introduced in 4.0.

With respect to the changes:

ompt_event_task_dependences
According to the specification, this event is raised after the task has been
created, thefore this event needs to be raised after ompt_event_task_begin
(in __kmp_task_start). However, the dependencies are known at
__kmpc_omp_task_with_deps which occurs before __kmp_task_start. My modifications
extend the ompt_task_info_t struct in order to store the dependencies of the
task when _kmpc_omp_task_with_deps occurs and then they are emitted in
__kmp_task_start just after raising the ompt_event_task_begin. The deps field
is allocated and valid until the event is raised and it is freed and set
to null afterwards.

ompt_event_task_dependence_pair
The processing of the dependences (i.e. checking whenever a dependence is
already satisfied) is done within __kmp_process_deps. That function checks
every dependence and calls the __kmp_track_dependence routine which gives some
support for graphical output. I used that routine to emit the dependence pair
but I also needed to know the sink_task. Despite the fact that the code within
KMP_SUPPORT_GRAPH_OUTPUT refers to task_sink it may be null because
sink->dn.task (there's a comment regarding this) and in fact it does not point
to a proper pointer value because the value is set in node->dn.task = task;
after the __kmp_process_deps calls in __kmp_check_deps. I have extended the
__kmp_process_deps and __kmp_track_dependence parameter list to receive the
sink_task.

[1] https://github.com/OpenMPToolsInterface/OMPT-Technical-Report/blob/target/ompt-tr.pdf

Patch by Harald Servat
Differential Revision: http://reviews.llvm.org/D14746

llvm-svn: 259038

8 years ago[OMPT] Avoid SEGV when a worker thread needs its parallel id behind the barrier
Jonas Hahnfeld [Thu, 28 Jan 2016 10:39:45 +0000 (10:39 +0000)]
[OMPT] Avoid SEGV when a worker thread needs its parallel id behind the barrier

When the code behind the barrier is executed, the master thread may have
already resumed execution. That's why we cannot safely assume that *pteam
is not yet freed.

This has been introduced by r258866.

llvm-svn: 259037

8 years agoAdd backend dignostic printer for unsupported features
Oliver Stannard [Thu, 28 Jan 2016 10:07:34 +0000 (10:07 +0000)]
Add backend dignostic printer for unsupported features

Re-commit of r258950 after fixing layering violation.

Add backend dignostic printer for unsupported features

The related LLVM patch adds a backend diagnostic type for reporting
unsupported features, this adds a printer for them to clang.

In the case where debug location information is not available, I've
changed the printer to report the location as the first line of the
function, rather than the closing brace, as the latter does not give the
user any information. This also affects optimisation remarks.

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

llvm-svn: 259036

8 years agoAdd backend dignostic printer for unsupported features
Oliver Stannard [Thu, 28 Jan 2016 10:07:27 +0000 (10:07 +0000)]
Add backend dignostic printer for unsupported features

Re-commit of r258951 after fixing layering violation.

The related LLVM patch adds a backend diagnostic type for reporting
unsupported features, this adds a printer for them to clang.

In the case where debug location information is not available, I've
changed the printer to report the location as the first line of the
function, rather than the closing brace, as the latter does not give the
user any information. This also affects optimisation remarks.

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

llvm-svn: 259035

8 years ago[X86][SSE] Move setTargetShuffleZeroElements closer to getTargetShuffleMask. NFCI.
Simon Pilgrim [Thu, 28 Jan 2016 09:45:01 +0000 (09:45 +0000)]
[X86][SSE] Move setTargetShuffleZeroElements closer to getTargetShuffleMask. NFCI.

Keep target shuffle mask helper functions closer together.

llvm-svn: 259034

8 years agoMinor code cleanups. NFC.
Junmo Park [Thu, 28 Jan 2016 09:42:39 +0000 (09:42 +0000)]
Minor code cleanups. NFC.

llvm-svn: 259033

8 years agoFix isBeforeInTranslationUnit to not abort on macros defined in cmdline.
Yury Gribov [Thu, 28 Jan 2016 09:28:18 +0000 (09:28 +0000)]
Fix isBeforeInTranslationUnit to not abort on macros defined in cmdline.

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

llvm-svn: 259031

8 years agoSmall refactor in isBeforeInTranslationUnit.
Yury Gribov [Thu, 28 Jan 2016 09:27:46 +0000 (09:27 +0000)]
Small refactor in isBeforeInTranslationUnit.

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

llvm-svn: 259030

8 years ago[X86][AVX512] small fix in ptestm intrinsics
Asaf Badouh [Thu, 28 Jan 2016 08:33:22 +0000 (08:33 +0000)]
[X86][AVX512] small fix in ptestm intrinsics
move ptestm{q|d} intrinsics from patterns form (in td file) to the intrinsics table

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

llvm-svn: 259029

8 years agofixed Xcode gtest build failure
Todd Fiala [Thu, 28 Jan 2016 08:16:18 +0000 (08:16 +0000)]
fixed Xcode gtest build failure

llvm-svn: 259028

8 years agomodify Xcode build to use cmake/ninja for internal llvm/clang
Todd Fiala [Thu, 28 Jan 2016 07:36:44 +0000 (07:36 +0000)]
modify Xcode build to use cmake/ninja for internal llvm/clang

This change restores the Xcode build to working after Makefile support
was stripped from LLVM and clang recently.

With this change, the Xcode build now requires cmake (2.8.12.2+).
The cmake must either be on the path that Xcode sees, or it must
exist in one of the following locations:

* /usr/local/bin/cmake
* /opt/local/bin/cmake
* $HOME/bin/cmake

If the ninja build tool is present on the path, it will be used.
If not, ninja will be cloned (via git), bootstrap-built, and
used for the llvm/clang build.

LLDB now requires a minimum deployment target of OS X 10.9.  Prior
to this, it was 10.8.  The llvm/clang cmake build will not run
with Xcode 7.2 or Xcode 7.3 beta's compiler with the minimum
deployment target set to anything lower than 10.9.  This is
related to #include <atomic>.

When llvm or clang source code does not exist in the lldb tree,
it will be cloned via git using http://llvm.org/git/{project}.git.
Previously it used SVN.  If this causes any heartache, we can
make this smarter, autodetect an embedded svn and use svn instead.
(And/or use SVN if a git command is not available).

This change also fixes an lldb-mi linkage failure (needed
libncurses) as exposed by one of the LLVM libs.

llvm-svn: 259027

8 years ago[OMPT] Workaround clang failing with 'declare target'
Jonas Hahnfeld [Thu, 28 Jan 2016 07:14:44 +0000 (07:14 +0000)]
[OMPT] Workaround clang failing with 'declare target'

Current clang trunk reports _OPENMP to be 201307 = OpenMP 4.0. It doesn't
recognize '#pragma omp declare target' though (patch still pending) and
therefore fails compilation.

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

llvm-svn: 259026

8 years agoValueTracking: Use fixed array for assumption exclude set in Query.
Matthias Braun [Thu, 28 Jan 2016 06:29:33 +0000 (06:29 +0000)]
ValueTracking: Use fixed array for assumption exclude set in Query.

The Query structure is constructed often and is relevant for compiletime
performance. We can replace the SmallPtrSet for assumption exclusions in
this structure with a fixed size array because we know the maximum
number of elements.  This improves typical clang -O3 -emit-llvm compiletime
by 1.2% in my measurements.

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

llvm-svn: 259025

8 years ago[DAGCombiner] Don't add volatile or indexed stores to ChainedStores
Junmo Park [Thu, 28 Jan 2016 06:23:33 +0000 (06:23 +0000)]
[DAGCombiner] Don't add volatile or indexed stores to ChainedStores

Summary:
findBetterNeighborChains does not handle volatile or indexed stores.
However, it did not check when adding stores to ChainedStores.

Reviewers: arsenm

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

llvm-svn: 259024

8 years ago[libcxx] Remove pragmas that were needed to suppress warnings produced
Akira Hatanaka [Thu, 28 Jan 2016 06:13:36 +0000 (06:13 +0000)]
[libcxx] Remove pragmas that were needed to suppress warnings produced
by -Wpadded.

We don't need these pragmas anymore because -Wpadded was removed from
buildit in r258900.

llvm-svn: 259023

8 years ago[Lex] Share some common code between decimal and octal parsing in NumericLiteralParser.
Craig Topper [Thu, 28 Jan 2016 05:22:54 +0000 (05:22 +0000)]
[Lex] Share some common code between decimal and octal parsing in NumericLiteralParser.

There were a couple slight variations between the two copies that I don't believe were intentional. For example, only one of the paths checked for digit separations proceeding a '.', but I think the lexer itself splits the token if a digit separator proceeds a period.

llvm-svn: 259022

8 years agoSmallPtrSet: Add missing include
Matthias Braun [Thu, 28 Jan 2016 05:09:01 +0000 (05:09 +0000)]
SmallPtrSet: Add missing include

llvm-svn: 259021

8 years agoWebAssembly: fix build
JF Bastien [Thu, 28 Jan 2016 05:05:17 +0000 (05:05 +0000)]
WebAssembly: fix build

r259016 didn't also revert r258957 which broken the WebAssembly build.

llvm-svn: 259020

8 years agoSmallPtrSet: Make destructor available for inlining
Matthias Braun [Thu, 28 Jan 2016 04:49:14 +0000 (04:49 +0000)]
SmallPtrSet: Make destructor available for inlining

llvm-svn: 259019

8 years agoSmallPtrSet: Share some code between copy/move constructor/assignment operator
Matthias Braun [Thu, 28 Jan 2016 04:49:11 +0000 (04:49 +0000)]
SmallPtrSet: Share some code between copy/move constructor/assignment operator

llvm-svn: 259018

8 years agoSmallPtrSet: Remove trailing whitespace, fix indentation
Matthias Braun [Thu, 28 Jan 2016 04:49:07 +0000 (04:49 +0000)]
SmallPtrSet: Remove trailing whitespace, fix indentation

llvm-svn: 259017

8 years agoRevert r258951 (and r258950), "Refactor backend diagnostics for unsupported features"
NAKAMURA Takumi [Thu, 28 Jan 2016 04:41:32 +0000 (04:41 +0000)]
Revert r258951 (and r258950), "Refactor backend diagnostics for unsupported features"

It broke layering violation in LLVMIR.

clang r258950 "Add backend dignostic printer for unsupported features"
llvm  r258951 "Refactor backend diagnostics for unsupported features"

llvm-svn: 259016

8 years agoLeft a file out of r259014
Marshall Clow [Thu, 28 Jan 2016 04:15:35 +0000 (04:15 +0000)]
Left a file out of r259014

llvm-svn: 259015

8 years agoimplement ostream_joiner. Reviewed as http://reviews.llvm.org/D16605
Marshall Clow [Thu, 28 Jan 2016 04:14:56 +0000 (04:14 +0000)]
implement ostream_joiner. Reviewed as reviews.llvm.org/D16605

llvm-svn: 259014

8 years ago[WebAssembly] Don't stackify a register def past a get_local use in the same tree.
Dan Gohman [Thu, 28 Jan 2016 03:59:09 +0000 (03:59 +0000)]
[WebAssembly] Don't stackify a register def past a get_local use in the same tree.

llvm-svn: 259013

8 years agoputting requires on one line - ppc still executes my tests.
Mike Aizatsky [Thu, 28 Jan 2016 02:24:35 +0000 (02:24 +0000)]
putting requires on one line - ppc still executes my tests.

llvm-svn: 259012

8 years ago[Sema] Make extended vectors of `bool` an error.
George Burgess IV [Thu, 28 Jan 2016 01:38:18 +0000 (01:38 +0000)]
[Sema] Make extended vectors of `bool` an error.

In OpenCL, `bool` vectors are a reserved type, and are therefore
illegal.

Outside of OpenCL, if we try to make an extended vector of N `bool`s,
Clang will lower it to an `[N x i1]`. LLVM has no ABI for bitvectors, so
lots of operations on such vectors are thoroughly broken. As a result,
this patch makes them illegal in everything else, as well. :)

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

llvm-svn: 259011

8 years agoMinor code formatting cleanup. NFC.
Junmo Park [Thu, 28 Jan 2016 01:23:18 +0000 (01:23 +0000)]
Minor code formatting cleanup. NFC.

llvm-svn: 259010

8 years ago[WebAssembly] Enhanced register stackification
Dan Gohman [Thu, 28 Jan 2016 01:22:44 +0000 (01:22 +0000)]
[WebAssembly] Enhanced register stackification

This patch revamps the RegStackifier pass with a new tree traversal mechanism,
enabling three major new features:

 - Stackification of values with multiple uses, using the result value of set_local
 - More aggressive stackification of instructions with side effects
 - Reordering operands in commutative instructions to enable more stackification.

llvm-svn: 259009

8 years agoMinor style cleanup of CFLAA. NFC.
George Burgess IV [Thu, 28 Jan 2016 00:54:01 +0000 (00:54 +0000)]
Minor style cleanup of CFLAA. NFC.

llvm-svn: 259008

8 years ago[cfi] Fix recovery from out-of-bounds vtable error.
Evgeniy Stepanov [Thu, 28 Jan 2016 00:37:54 +0000 (00:37 +0000)]
[cfi] Fix recovery from out-of-bounds vtable error.

llvm-svn: 259007

8 years ago[sancov] run sancov test on x86_64 linux only
Mike Aizatsky [Thu, 28 Jan 2016 00:35:17 +0000 (00:35 +0000)]
[sancov] run sancov test on x86_64 linux only

llvm-svn: 259006

8 years agoGetArgv returns null on widnows, do not crash
Mike Aizatsky [Thu, 28 Jan 2016 00:31:49 +0000 (00:31 +0000)]
GetArgv returns null on widnows, do not crash

llvm-svn: 259005

8 years ago[sancov] running sancov test on linux only
Mike Aizatsky [Thu, 28 Jan 2016 00:27:13 +0000 (00:27 +0000)]
[sancov] running sancov test on linux only

llvm-svn: 259004

8 years agoA while back in revison 244716 we added support for getting the host OS version info...
Greg Clayton [Thu, 28 Jan 2016 00:16:11 +0000 (00:16 +0000)]
A while back in revison 244716 we added support for getting the host OS version info from debugserver. We added keys to "qHostInfo" that were "osmajor", "osminor" and "ospatch", but no one ever parsed those, so I am removing them from debugserver. We accidentally also added a "version" key to qHostInfo instead of "os_version". So now we need to support both "version" and "os_version" in qHostInfo since we have debugserver binaries out in the wild that support this old packet type. I have updated debugserver ot use the correct "os_version" for future compatability or correctness.

<rdar://problem/24378699>

llvm-svn: 259003

8 years agoless indenting; NFCI
Sanjay Patel [Thu, 28 Jan 2016 00:03:16 +0000 (00:03 +0000)]
less indenting; NFCI

llvm-svn: 259002

8 years agousing /system/bin/sh on android in tests.
Mike Aizatsky [Wed, 27 Jan 2016 23:58:23 +0000 (23:58 +0000)]
using /system/bin/sh on android in tests.

Subscribers: tberghammer, danalbert, srhines

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

llvm-svn: 259001

8 years ago[sancov] sancov tool documentation
Mike Aizatsky [Wed, 27 Jan 2016 23:56:12 +0000 (23:56 +0000)]
[sancov] sancov tool documentation

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

llvm-svn: 259000

8 years ago[sanitizers] generating html report on coverage dump
Mike Aizatsky [Wed, 27 Jan 2016 23:51:36 +0000 (23:51 +0000)]
[sanitizers] generating html report on coverage dump

Subscribers: tberghammer, danalbert, srhines

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

llvm-svn: 258999

8 years agoScopInfo: Never add read accesses for synthesizable values
Michael Kruse [Wed, 27 Jan 2016 22:51:56 +0000 (22:51 +0000)]
ScopInfo: Never add read accesses for synthesizable values

Before adding a MK_Value READ MemoryAccess, check whether the read is
necessary or synthesizable. Synthesizable values are later generated by
the SCEVExpander and therefore do not need to be transferred
explicitly. This can happen because the check for synthesizability has
presumbly been forgotten in the case where a phi's incoming value has
been defined in a different statement.

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

llvm-svn: 258998

8 years agoStrengthen cfi-check-fail test.
Evgeniy Stepanov [Wed, 27 Jan 2016 22:28:56 +0000 (22:28 +0000)]
Strengthen cfi-check-fail test.

r258993 allows stricter testing for basic block labels by making
sure that they are always followed by ":". Use this to improve the
test.

llvm-svn: 258997

8 years agoDo not use return with a function whose return type is void.
Rui Ueyama [Wed, 27 Jan 2016 22:23:44 +0000 (22:23 +0000)]
Do not use return with a function whose return type is void.

Although it is syntactically correct, it is a bit confusing, and
not necessary here.

llvm-svn: 258996

8 years ago[TTI] Add getPrefetchDistance from PPCLoopDataPrefetch, NFC
Adam Nemet [Wed, 27 Jan 2016 22:21:25 +0000 (22:21 +0000)]
[TTI] Add getPrefetchDistance from PPCLoopDataPrefetch, NFC

This patch is part of the work to make PPCLoopDataPrefetch
target-independent
(http://thread.gmane.org/gmane.comp.compilers.llvm.devel/92758).

As it was discussed in the above thread, getPrefetchDistance is
currently using instruction count which may change in the future.

llvm-svn: 258995

8 years agoARMv7k: simplify logic for deciding sjlj-exceptions.
Tim Northover [Wed, 27 Jan 2016 22:14:02 +0000 (22:14 +0000)]
ARMv7k: simplify logic for deciding sjlj-exceptions.

Slight change of behaviour in the odd armv7+watchos case, which should match
the other runtime components.

llvm-svn: 258994

8 years agoTweak unnamed label syntax in textual IR for easier matching in tests.
Evgeniy Stepanov [Wed, 27 Jan 2016 21:53:08 +0000 (21:53 +0000)]
Tweak unnamed label syntax in textual IR for easier matching in tests.

Change the unnamed label comments like
  ; <label>:8  ; preds = %1
to
  ; <label>:8:  ; preds = %1

This way lit tests can match [[LABEL]]: in both asserts and no-asserts builds.

llvm-svn: 258993

8 years ago[cfi] Fix a warning in tests.
Evgeniy Stepanov [Wed, 27 Jan 2016 21:49:03 +0000 (21:49 +0000)]
[cfi] Fix a warning in tests.

test/cfi/cross-dso/dlopen.cpp:67:45: warning: GCC does not allow 'aligned' attribute in this position on a function definition [-Wgcc-compat]
extern "C" void do_nothing() __attribute__((aligned(4096))) {}

llvm-svn: 258992

8 years ago[CMake] Set llvm_tools_dir to LLVM_TOOLS_BINARY_DIR instead of LLVM_TOOLS_DIR
Alexey Samsonov [Wed, 27 Jan 2016 21:36:38 +0000 (21:36 +0000)]
[CMake] Set llvm_tools_dir to LLVM_TOOLS_BINARY_DIR instead of LLVM_TOOLS_DIR

In this way, it should work for both in-LLVM and standalone
compiler-rt build.

llvm-svn: 258991

8 years agoRestore th_current_task first as suggested by John Mellor-Crummey
Jonathan Peyton [Wed, 27 Jan 2016 21:20:26 +0000 (21:20 +0000)]
Restore th_current_task first as suggested by John Mellor-Crummey

If an asynchronous inquiry peers into the runtime system
it doesn't see the freed task as the current task.

llvm-svn: 258990

8 years ago[WebAssembly] Implement byval arguments
Derek Schuff [Wed, 27 Jan 2016 21:17:39 +0000 (21:17 +0000)]
[WebAssembly] Implement byval arguments

Summary:
Just does the simple allocation of a stack object and passes
a pointer to the callee.

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

llvm-svn: 258989

8 years ago[cfi] Disable vtable diagnostics when no cxxabi.
Evgeniy Stepanov [Wed, 27 Jan 2016 21:15:10 +0000 (21:15 +0000)]
[cfi] Disable vtable diagnostics when no cxxabi.

This should fix the build on Mac 10.8 and earlier.

llvm-svn: 258988

8 years ago[utils] Add windows support to update_llc_test_checks.py
Simon Pilgrim [Wed, 27 Jan 2016 21:13:18 +0000 (21:13 +0000)]
[utils] Add windows support to update_llc_test_checks.py

Strip dos line endings from llc generated files to allow the regex patterns to match them.

Ensure updated *.ll files are generated with unix style line endings.

llvm-svn: 258987

8 years agoFormatting fixes
Jonathan Peyton [Wed, 27 Jan 2016 21:02:04 +0000 (21:02 +0000)]
Formatting fixes

Removing extraneous { } bracket sections.  Unindenting blocks of
code as a result.  Also removing empty #ifdef KMP_STUB

llvm-svn: 258986

8 years agoFixing comments.
Jonathan Peyton [Wed, 27 Jan 2016 20:57:32 +0000 (20:57 +0000)]
Fixing comments.

Removing references to non-existent functions, fixing typos.

llvm-svn: 258985

8 years agoRemoving extra empty lines
Jonathan Peyton [Wed, 27 Jan 2016 20:44:49 +0000 (20:44 +0000)]
Removing extra empty lines

llvm-svn: 258984

8 years ago[sanitizers] using execv instead of execve with null env.
Mike Aizatsky [Wed, 27 Jan 2016 20:35:18 +0000 (20:35 +0000)]
[sanitizers] using execv instead of execve with null env.

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

llvm-svn: 258983

8 years ago[llvm-nm] Remove redundant check for file validity.
Davide Italiano [Wed, 27 Jan 2016 20:27:44 +0000 (20:27 +0000)]
[llvm-nm] Remove redundant check for file validity.

We already perform it at the beginning of the function so we can't
arrive here with an invalid object. Also, add a test so that bugs
won't sneak in the future.

llvm-svn: 258982

8 years agoclang-format: [Java] Remove unnecessary line break after complex annotations
Daniel Jasper [Wed, 27 Jan 2016 20:14:23 +0000 (20:14 +0000)]
clang-format: [Java] Remove unnecessary line break after complex annotations

Before:
  @Annotation("Some"
      + " text")
  List<Integer>
      list;

After:
  @Annotation("Some"
      + " text")
  List<Integer> list;

llvm-svn: 258981

8 years agoClass Property: create accessors (class methods) for class property.
Manman Ren [Wed, 27 Jan 2016 20:10:32 +0000 (20:10 +0000)]
Class Property: create accessors (class methods) for class property.

Change a few places where we assume property accessors can only be instance
methods.

rdar://23891898

llvm-svn: 258980

8 years agoClass Property: handle class properties.
Manman Ren [Wed, 27 Jan 2016 20:00:32 +0000 (20:00 +0000)]
Class Property: handle class properties.

At places where we handle instance properties, if necessary.

rdar://23891898

llvm-svn: 258979

8 years agoRevert "Resubmit r258759 with proper unicode handling."
Zachary Turner [Wed, 27 Jan 2016 19:47:28 +0000 (19:47 +0000)]
Revert "Resubmit r258759 with proper unicode handling."

This reverts commit 2c79d60214e146b13b233392a859b4f79340e90e.

llvm-svn: 258978