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
Xinliang David Li [Thu, 28 Jan 2016 18:37:43 +0000 (18:37 +0000)]
Minor cleanup /NFC
llvm-svn: 259068
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
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
Nico Weber [Thu, 28 Jan 2016 18:06:31 +0000 (18:06 +0000)]
Fix strange indent.
llvm-svn: 259063
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
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
Benjamin Kramer [Thu, 28 Jan 2016 17:48:29 +0000 (17:48 +0000)]
Make header self-contained.
llvm-svn: 259060
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
Mitch Bodart [Thu, 28 Jan 2016 16:40:51 +0000 (16:40 +0000)]
[X86] Test commit, fixed typos in comments. NFC.
llvm-svn: 259057
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
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
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
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
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
Simon Pilgrim [Thu, 28 Jan 2016 15:29:11 +0000 (15:29 +0000)]
[x86] Merge multiple calls to DAG.getTargetLoweringInfo(). NFC.
llvm-svn: 259050
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
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
Oliver Stannard [Thu, 28 Jan 2016 13:19:47 +0000 (13:19 +0000)]
Revert r259035, it introduces a cyclic library dependency
llvm-svn: 259045
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
Oliver Stannard [Thu, 28 Jan 2016 13:09:49 +0000 (13:09 +0000)]
Revert r259036, it introduces a cyclic library dependency
llvm-svn: 259043
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
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
Benjamin Kramer [Thu, 28 Jan 2016 11:26:34 +0000 (11:26 +0000)]
Unbreak the wasm backend again after r259035.
llvm-svn: 259040
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
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
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
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
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
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
Junmo Park [Thu, 28 Jan 2016 09:42:39 +0000 (09:42 +0000)]
Minor code cleanups. NFC.
llvm-svn: 259033
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
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
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
Todd Fiala [Thu, 28 Jan 2016 08:16:18 +0000 (08:16 +0000)]
fixed Xcode gtest build failure
llvm-svn: 259028
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
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
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
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
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
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
Matthias Braun [Thu, 28 Jan 2016 05:09:01 +0000 (05:09 +0000)]
SmallPtrSet: Add missing include
llvm-svn: 259021
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
Matthias Braun [Thu, 28 Jan 2016 04:49:14 +0000 (04:49 +0000)]
SmallPtrSet: Make destructor available for inlining
llvm-svn: 259019
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
Matthias Braun [Thu, 28 Jan 2016 04:49:07 +0000 (04:49 +0000)]
SmallPtrSet: Remove trailing whitespace, fix indentation
llvm-svn: 259017
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
Marshall Clow [Thu, 28 Jan 2016 04:15:35 +0000 (04:15 +0000)]
Left a file out of r259014
llvm-svn: 259015
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
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
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
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
Junmo Park [Thu, 28 Jan 2016 01:23:18 +0000 (01:23 +0000)]
Minor code formatting cleanup. NFC.
llvm-svn: 259010
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
George Burgess IV [Thu, 28 Jan 2016 00:54:01 +0000 (00:54 +0000)]
Minor style cleanup of CFLAA. NFC.
llvm-svn: 259008
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
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
Mike Aizatsky [Thu, 28 Jan 2016 00:31:49 +0000 (00:31 +0000)]
GetArgv returns null on widnows, do not crash
llvm-svn: 259005
Mike Aizatsky [Thu, 28 Jan 2016 00:27:13 +0000 (00:27 +0000)]
[sancov] running sancov test on linux only
llvm-svn: 259004
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
Sanjay Patel [Thu, 28 Jan 2016 00:03:16 +0000 (00:03 +0000)]
less indenting; NFCI
llvm-svn: 259002
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Jonathan Peyton [Wed, 27 Jan 2016 20:44:49 +0000 (20:44 +0000)]
Removing extra empty lines
llvm-svn: 258984
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
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
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
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
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
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
Evgeniy Stepanov [Wed, 27 Jan 2016 19:33:00 +0000 (19:33 +0000)]
[cfi] Fix gcc build.
llvm-svn: 258977
Tim Northover [Wed, 27 Jan 2016 19:32:40 +0000 (19:32 +0000)]
ARMv7k: select ABI based on v7k Arch rather than watchos OS.
Various bits we'd like to use the new ABI actually compile with "-arch armv7k
-miphoneos-version-min=9.0". Not ideal, but also not ridiculous given how
slices work.
llvm-svn: 258976
Tim Northover [Wed, 27 Jan 2016 19:32:29 +0000 (19:32 +0000)]
ARMv7k: base ABI decision on v7k Arch rather than watchos OS.
Various bits we want to use the new ABI actually compile with "-arch armv7k
-miphoneos-version-min=9.0". Not ideal, but also not ridiculous given how
slices work.
llvm-svn: 258975
Benjamin Kramer [Wed, 27 Jan 2016 19:29:56 +0000 (19:29 +0000)]
One more batch of self-containing headers.
llvm-svn: 258974
Benjamin Kramer [Wed, 27 Jan 2016 19:29:42 +0000 (19:29 +0000)]
Don't put classes in headers into anonymous namespaces.
You want ODR violations? That's how you get ODR violations.
llvm-svn: 258973
Sanjay Patel [Wed, 27 Jan 2016 19:22:45 +0000 (19:22 +0000)]
[SimplifyCFG] limit recursion depth when speculating instructions (PR26308)
This is a fix for:
https://llvm.org/bugs/show_bug.cgi?id=26308
With the switch to using the TTI cost model in:
http://reviews.llvm.org/rL228826
...it became possible to hit a zero-cost cycle of instructions (gep -> phi -> gep...),
so we need a cap for the recursion in DominatesMergePoint().
A recursion depth parameter was already added for a different reason in:
http://reviews.llvm.org/rL255660
...so we can just set a limit for it.
I pulled "10" out of the air and made it an independent parameter that we can play with.
It might be higher than it needs to be given the currently low default value of
PHINodeFoldingThreshold (2). That's the starting cost value that we enter the recursion
with, and most instructions have cost set to TCC_Basic (1), so I don't think we're going
to speculate more than 2 instructions with the current parameters.
As noted in the review and the TODO comment, we can do better than just limiting recursion
depth.
Differential Revision: http://reviews.llvm.org/D16637
llvm-svn: 258971
John McCall [Wed, 27 Jan 2016 19:05:08 +0000 (19:05 +0000)]
Add support for objc_unsafeClaimAutoreleasedReturnValue to the
ObjC ARC Optimizer.
The main implication of this is:
1. Ensuring that we treat it conservatively in terms of optimization.
2. We put the ASM marker on it so that the runtime can recognize
objc_unsafeClaimAutoreleasedReturnValue from releaseRV.
<rdar://problem/
21567064>
Patch by Michael Gottesman!
llvm-svn: 258970
Zachary Turner [Wed, 27 Jan 2016 19:00:51 +0000 (19:00 +0000)]
Resubmit r258759 with proper unicode handling.
Instead of opening the file in unicode mode, we need only encode
data which potentially has non-ASCII characters as UTF8 before
writing. This should work across both Python versions, and is
also far simpler than anything else discussed.
llvm-svn: 258969
Zachary Turner [Wed, 27 Jan 2016 18:49:35 +0000 (18:49 +0000)]
Fix some python 3 incompatibilities that went in overnight.
* basestring is not a thing anymore. Must use `six.string_types`.
* Must use from __future__ import print_function in every new test
file.
llvm-svn: 258967
Zachary Turner [Wed, 27 Jan 2016 18:49:31 +0000 (18:49 +0000)]
Refactor some of the xfail / skip decorators to share logic.
Previously the logic of skipIf and expectedFailure were 99%
the same, but they took different sets of arguments since they
were maintained separately, and had slightly differences in
their behavior. This makes everything consistent, there is now
only one real implementation, and the previous ones are changed
to use the single master implementation.
llvm-svn: 258966
Zachary Turner [Wed, 27 Jan 2016 18:49:25 +0000 (18:49 +0000)]
Don't automtically try to import pexpect in lldbpexpect.
Since pexpect doesn't exist on Windows, tests which are xfail'ed
are not being run at all because they are failing when the file
is imported due to the `import pexpect`. This puts the import
behind a conditional and makes an empty base class in the case
where pexpect is not present.
llvm-svn: 258965
John McCall [Wed, 27 Jan 2016 18:32:30 +0000 (18:32 +0000)]
Emit calls to objc_unsafeClaimAutoreleasedReturnValue when
reclaiming a call result in order to ignore it or assign it
to an __unsafe_unretained variable. This avoids adding
an unwanted retain/release pair when the return value is
not actually returned autoreleased (e.g. when it is returned
from a nonatomic getter or a typical collection accessor).
This runtime function is only available on the latest Apple
OS releases; the backwards-compatibility story is that you
don't get the optimization unless your deployment target is
recent enough. Sorry.
rdar://
20530049
llvm-svn: 258962
Hans Wennborg [Wed, 27 Jan 2016 18:29:16 +0000 (18:29 +0000)]
docs/conf.py: update copyright year
llvm-svn: 258960
Rafael Espindola [Wed, 27 Jan 2016 18:04:26 +0000 (18:04 +0000)]
Remove another case of almost duplicated code.
Were had very similar code for deciding to keep a local symbol and for
actually writing it.
llvm-svn: 258958
Benjamin Kramer [Wed, 27 Jan 2016 18:03:40 +0000 (18:03 +0000)]
Unbreak wasm build after r258951.
llvm-svn: 258957