Pavel Labath [Mon, 8 Feb 2016 09:35:53 +0000 (09:35 +0000)]
Have lldb-server log the timestamp in its log messages
llvm-svn: 260078
Alexey Bataev [Mon, 8 Feb 2016 09:29:13 +0000 (09:29 +0000)]
[OPENMP 4.5] Ccapture/codegen of private non-static data members.
OpenMP 4.5 introduces privatization of non-static data members of current class in non-static member functions.
To correctly handle such kind of privatization a new (pseudo)declaration VarDecl-based node is added. It allows to reuse an existing code for capturing variables in Lambdas/Block/Captured blocks of code for correct privatization and codegen.
llvm-svn: 260077
Maxim Ostapenko [Mon, 8 Feb 2016 08:39:59 +0000 (08:39 +0000)]
[asan] Introduce new approach for ODR violation detection based on odr indicator symbols.
This is a compiler-rt part of this http://reviews.llvm.org/D15642 patch. Here,
we add a new approach for ODR violation detection.
Instead of using __asan_region_is_poisoned(g->beg, g->size_with_redzone) on
global address (that would return false now due to using private alias), we can
use new globally visible indicator symbol to perform the check.
Differential Revision: http://reviews.llvm.org/D15644
llvm-svn: 260076
Maxim Ostapenko [Mon, 8 Feb 2016 08:30:57 +0000 (08:30 +0000)]
[asan] Introduce new hidden -asan-use-private-alias option.
As discussed in https://github.com/google/sanitizers/issues/398, with current
implementation of poisoning globals we can have some CHECK failures or false
positives in case of mixing instrumented and non-instrumented code due to ASan
poisons innocent globals from non-sanitized binary/library. We can use private
aliases to avoid such errors. In addition, to preserve ODR violation detection,
we introduce new __odr_asan_gen_XXX symbol for each instrumented global that
indicates if this global was already registered. To detect ODR violation in
runtime, we should only check the value of indicator and report an error if it
isn't equal to zero.
Differential Revision: http://reviews.llvm.org/D15642
llvm-svn: 260075
Nathan Wilson [Mon, 8 Feb 2016 05:34:00 +0000 (05:34 +0000)]
[Concepts] Implement a portion of Concepts TS[dcl.spec.concept]p1 by
diagnosing when 'concept' is specified on a function or template
specialization.
Since a concept can only be applied to a function or variable template,
the concept bit is stored in TemplateDecl as a PointerIntPair.
Reviewers: rsmith, faisalv, aaron.ballman, hubert.reinterpretcast
Differential Revision: http://reviews.llvm.org/D13357
llvm-svn: 260074
Rui Ueyama [Mon, 8 Feb 2016 05:18:44 +0000 (05:18 +0000)]
ELF: Simplify getFdeEncoding.
I found that the handling of 'L' character in an augmentation string is
wrong because 'L' means that the next byte is the length field. I could
have fixed that by just skipping the next byte, but I decided to take a
different approach.
Teaching the linker about all the types of CIE internal records just to
skip them is silly. And the code doing that is not actually executed now
(that's why the bug did not cause any issue.) It is because the 'R' field,
which we want to read, is always at beginning of the CIE. So I reduced
the code dramatically by assuming that that's always the case. I want to
see how it works in the wild. If it doesn't work, we can roll this back
(with a fix for 'L').
http://reviews.llvm.org/D16939
llvm-svn: 260073
Bhushan D. Attarde [Mon, 8 Feb 2016 04:35:51 +0000 (04:35 +0000)]
[LLDB][MIPS] Fix TestExpressionInSyscall.py for MIPS
SUMMARY:
This patch fixes TestExpressionInSyscall.py and solves bug 23659 for MIPS.
Corrected indentation at couple of places.
Reviewers: clayborg
Subscribers: mohit.bhakkad, sagar, jaydeep, lldb-commits
Differential Revision: http://reviews.llvm.org/D16916
llvm-svn: 260072
Saleem Abdulrasool [Mon, 8 Feb 2016 03:50:18 +0000 (03:50 +0000)]
build: silence warnings in in-tree build
Avoid the developer warnings from cmake when configuring libc++ as part of the
LLVM layout. Setup the custom macro paths earlier to re-use the detection logic
prior to setting the project properties.
llvm-svn: 260071
Dan Gohman [Mon, 8 Feb 2016 03:42:36 +0000 (03:42 +0000)]
[WebAssembly] Add another optimization idea to README.txt.
llvm-svn: 260070
Craig Topper [Mon, 8 Feb 2016 01:23:15 +0000 (01:23 +0000)]
[X86] Change FeatureIFMA string to 'avx512ifma'. Matches gcc and fixes PR26461.
llvm-svn: 260069
Craig Topper [Mon, 8 Feb 2016 01:03:01 +0000 (01:03 +0000)]
[Support] Use hexdigit. NFC
llvm-svn: 260068
Craig Topper [Mon, 8 Feb 2016 01:02:55 +0000 (01:02 +0000)]
[Support] Fix the examples and assertion for format_hex_no_prefix to take into account that there are no prefix characters to include in Width.
llvm-svn: 260067
Devin Coughlin [Mon, 8 Feb 2016 00:28:24 +0000 (00:28 +0000)]
[analyzer] Avoid crash when attempting to evaluate binary operation on LazyCompoundVal.
Instead, return UnknownValue if either operand is a nonloc::LazyCompoundVal. This is a
spot fix for PR 24951.
rdar://problem/
23682244
llvm-svn: 260066
Alexander Kornienko [Mon, 8 Feb 2016 00:19:29 +0000 (00:19 +0000)]
[clang-tidy] Reformatted docs + minor updates
llvm-svn: 260065
NAKAMURA Takumi [Sun, 7 Feb 2016 23:03:38 +0000 (23:03 +0000)]
Disable llvm/test/tools/llvm-profdata/value-prof.proftext on win32 for now. Investigating.
llvm-svn: 260064
Simon Pilgrim [Sun, 7 Feb 2016 22:51:06 +0000 (22:51 +0000)]
[X86][SSE] Resolve target shuffle inputs to sentinels to permit more combines
The combineX86ShufflesRecursively only supports unary shuffles, but was missing the opportunity to combine binary shuffles with a zero / undef second input.
This patch resolves target shuffle inputs, converting the shuffle mask elements to SM_SentinelUndef/SM_SentinelZero where possible. It then resolves the updated mask to check if we have created a faux unary shuffle.
Additionally, we now attempt to recursively call combineX86ShufflesRecursively for all input operands (we used to just recurse for unary integer shuffles and unary unpacks) - it safely returns early if its not a target shuffle.
Differential Revision: http://reviews.llvm.org/D16683
llvm-svn: 260063
David Majnemer [Sun, 7 Feb 2016 22:42:05 +0000 (22:42 +0000)]
[MS ABI] Don't emit RTTI descriptors for dllimport vtables
A dllimport'd vtable always points one past the RTTI data, this means
that the initializer will never end up referencing the data. Our
emission is a harmless waste.
llvm-svn: 260062
Simon Pilgrim [Sun, 7 Feb 2016 22:22:09 +0000 (22:22 +0000)]
[X86][SSE] Regenerate PSHUFB shuffle mask comments tests
llvm-svn: 260061
Daniel Jasper [Sun, 7 Feb 2016 22:17:13 +0000 (22:17 +0000)]
clang-format: [JS] Don't count shortened object literals as blocks.
Before:
f({a},
() => {
g(); //
});
After:
f({a}, () => {
g(); //
});
llvm-svn: 260060
Nico Weber [Sun, 7 Feb 2016 21:41:37 +0000 (21:41 +0000)]
Revert r259961, r259978, r259981.
The "sanitizer-windows" buildbot has been failing for two days because of this:
FAILED: cl.exe asan_report.cc
asan_scariness_score.h(60) : error C2536:
'__asan::ScarinessScore::__asan::ScarinessScore::descr' :
cannot specify explicit initializer for arrays
asan_scariness_score.h(60) : see declaration of '__asan::ScarinessScore::descr'
llvm-svn: 260059
Nico Weber [Sun, 7 Feb 2016 21:32:17 +0000 (21:32 +0000)]
Make nozlibcompress.c pass and reenable it.
llvm-svn: 260058
Daniel Jasper [Sun, 7 Feb 2016 21:22:16 +0000 (21:22 +0000)]
clang-format: [JS] Support @see annotations in JSDoc comments in Google
style.
llvm-svn: 260057
Nico Weber [Sun, 7 Feb 2016 21:00:17 +0000 (21:00 +0000)]
Disable failing nozlibcompress.c
This test hasn't been running after it was added until r259976 made
"REQUIRES: nozlib" work, and now that the test runs it fails.
llvm-svn: 260056
Daniel Berlin [Sun, 7 Feb 2016 20:57:46 +0000 (20:57 +0000)]
Make check line consistent
llvm-svn: 260055
Simon Atanasyan [Sun, 7 Feb 2016 20:36:40 +0000 (20:36 +0000)]
[ELF][MIPS] Perform two checks using the single llvm-objdump / FileCheck run
NFC
llvm-svn: 260054
Nico Weber [Sun, 7 Feb 2016 20:09:18 +0000 (20:09 +0000)]
Revert 259942, r259943, r259948.
The Windows bots have been failing for the last two days, with:
FAILED: C:\PROGRA~2\MICROS~1.0\VC\bin\amd64\cl.exe -c LLVMContextImpl.cpp
D:\buildslave\clang-x64-ninja-win7\llvm\lib\IR\LLVMContextImpl.cpp(137) :
error C2248: 'llvm::TrailingObjects<llvm::AttributeSetImpl,
llvm::IndexAttrPair>::operator delete' :
cannot access private member declared in class 'llvm::AttributeSetImpl'
TrailingObjects.h(298) : see declaration of
'llvm::TrailingObjects<llvm::AttributeSetImpl,
llvm::IndexAttrPair>::operator delete'
AttributeImpl.h(213) : see declaration of 'llvm::AttributeSetImpl'
llvm-svn: 260053
Xinliang David Li [Sun, 7 Feb 2016 20:08:36 +0000 (20:08 +0000)]
Test update : tighten up checks
llvm-svn: 260052
Xinliang David Li [Sun, 7 Feb 2016 20:06:36 +0000 (20:06 +0000)]
Revert 260050 -- new test case should not be included
llvm-svn: 260051
Xinliang David Li [Sun, 7 Feb 2016 20:05:06 +0000 (20:05 +0000)]
Test update : tighten up checks
llvm-svn: 260050
Keno Fischer [Sun, 7 Feb 2016 19:36:54 +0000 (19:36 +0000)]
[docs] Add a note that the Visual Studio C++ tools are required
Watching new contributors trying to build LLVM on Windows, one of the
very common failure modes was getting a version of Visual Studio
that did not have a C++ compiler for CMake to put up. Trying to create
a C++ project in Visual Studio will cause Visual Studio to go and
download the C++ tools.
llvm-svn: 260049
Argyrios Kyrtzidis [Sun, 7 Feb 2016 19:28:36 +0000 (19:28 +0000)]
[Frontend] Make the memory management of FrontendAction pointers explicit by using unique_ptr.
llvm-svn: 260048
Argyrios Kyrtzidis [Sun, 7 Feb 2016 18:21:28 +0000 (18:21 +0000)]
[libclang] Add missing CINDEX_LINKAGE from a function.
llvm-svn: 260047
Dimitry Andric [Sun, 7 Feb 2016 17:40:45 +0000 (17:40 +0000)]
Fix build on FreeBSD after r259741.
On FreeBSD, the uc_mcontext member of ucontext_t has a member called
mc_err, which corresponds to the Linux member gregs[REG_ERR].
Reviewed by: rdivacky@FreeBSD.org
llvm-svn: 260046
Johannes Doerfert [Sun, 7 Feb 2016 17:30:13 +0000 (17:30 +0000)]
Separate invariant equivalence classes by type
We now distinguish invariant loads to the same memory location if they
have different types. This will cause us to pre-load an invariant
location once for each type that is used to access it. However, we can
thereby avoid invalid casting, especially if an array is accessed
though different typed/sized invariant loads.
This basically reverts the changes in r260023 but keeps the test
cases.
llvm-svn: 260045
Matthew Simpson [Sun, 7 Feb 2016 17:14:03 +0000 (17:14 +0000)]
Make -fno-math-builtin a cc1 option
This patch makes -fno-math-builtin a frontend only option instead of a driver
option. The appropriate test case was committed in r186899 when the flag was
introduced. This should fix PR26317.
Contributed-by: Frank Herrmann <fgh@4gh.tv>
llvm-svn: 260044
Devin Coughlin [Sun, 7 Feb 2016 16:55:44 +0000 (16:55 +0000)]
[analyzer] Invalidate destination of std::copy() and std::copy_backward().
Now that the libcpp implementations of these methods has a branch that doesn't call
memmove(), the analyzer needs to invalidate the destination for these methods explicitly.
rdar://problem/
23575656
llvm-svn: 260043
Philip Reames [Sun, 7 Feb 2016 16:35:04 +0000 (16:35 +0000)]
[docs] Remove now confusing references to cofigure/autoconf
llvm-svn: 260042
Xinliang David Li [Sun, 7 Feb 2016 16:31:13 +0000 (16:31 +0000)]
Add coverage tests (defaulted constructors/destructor)
llvm-svn: 260041
Philip Reames [Sun, 7 Feb 2016 16:23:32 +0000 (16:23 +0000)]
[docs] Wordsmithing to program layout descriptio in GettingStarted
This just incrementally improves what was already there; it's questionable whether this content belongs in the getting started guide at all.
Patch by Ben Nathanson w/permission w/minor edtis by me.
llvm-svn: 260040
Philip Reames [Sun, 7 Feb 2016 15:58:35 +0000 (15:58 +0000)]
[docs] Clarify disk space usage of debug builds
llvm-svn: 260039
Roman Divacky [Sun, 7 Feb 2016 15:50:55 +0000 (15:50 +0000)]
Fix a typo.
llvm-svn: 260038
Philip Reames [Sun, 7 Feb 2016 15:49:57 +0000 (15:49 +0000)]
[docs] Remove a stale and confusing section from GettingStarted
The mentioned environment variable doesn't appear to have any use in the LLVM repository. If it is still relevant for clang, we can consider adding it to the clang getting started page.
Patch inspired by documentation work by Ben Nathanson at the LLVM Bloomberg sprint.
llvm-svn: 260037
Renato Golin [Sun, 7 Feb 2016 15:43:09 +0000 (15:43 +0000)]
Revert "Re-apply r259977 - [OpenMP] Reorganize code to allow specialized code generation for different devices."
This reverts commit r259985, as it still fails one buildbot.
llvm-svn: 260036
Philip Reames [Sun, 7 Feb 2016 15:42:12 +0000 (15:42 +0000)]
[docs] Update the docs to describe how to build the docs with cmake
llvm-svn: 260035
Simon Pilgrim [Sun, 7 Feb 2016 15:39:22 +0000 (15:39 +0000)]
[X86][SSE] Added support for MOVHPD/MOVLPD + MOVHPS/MOVLPS shuffle decoding.
llvm-svn: 260034
Asaf Badouh [Sun, 7 Feb 2016 14:59:13 +0000 (14:59 +0000)]
[X86][AVX512] add intrinsics of Scalar FP to integer conversion with rounding mode
Differential Revision: http://reviews.llvm.org/D16629
llvm-svn: 260033
Simon Pilgrim [Sun, 7 Feb 2016 14:33:03 +0000 (14:33 +0000)]
[X86][SSE] Pulled out repeated target shuffle decodes into helper functions. NFCI.
Pulled out the code used by PSHUFB/VPERMV/VPERMV3 shuffle mask decoding into common helper functions.
The helper functions handle masks coming from BROADCAST/BUILD_VECTOR and ConstantPool nodes respectively.
llvm-svn: 260032
Johannes Doerfert [Sun, 7 Feb 2016 13:59:03 +0000 (13:59 +0000)]
[FIX] Two "off-by-one" error in constant range usage
llvm-svn: 260031
Johannes Doerfert [Sun, 7 Feb 2016 13:57:32 +0000 (13:57 +0000)]
Simplify code [NFC]
llvm-svn: 260030
Yaron Keren [Sun, 7 Feb 2016 12:44:35 +0000 (12:44 +0000)]
Use CodeGenModule::addReplacement() instead of directly accessing Replacements[].
This helps when trying to debug who inserted into Replacements.
llvm-svn: 260028
Simon Atanasyan [Sun, 7 Feb 2016 12:09:40 +0000 (12:09 +0000)]
[ELF][MIPS] Add comments to describe __gnu_local_gp magic symbol
NFC. Follow-up to r259781.
llvm-svn: 260027
Jeroen Ketema [Sun, 7 Feb 2016 11:31:56 +0000 (11:31 +0000)]
Fix typo in default getNoPreservedMask implementation
llvm-svn: 260026
Tobias Grosser [Sun, 7 Feb 2016 08:48:57 +0000 (08:48 +0000)]
Make memory accesses with different element types optional
We also disable this feature by default, as there are still some issues in
combination with invariant load hoisting that slipped through my initial
testing.
llvm-svn: 260025
Igor Breger [Sun, 7 Feb 2016 08:30:50 +0000 (08:30 +0000)]
AVX512: VPBROADCASTB/W/D/Q from GPR intrinsics implementation.
Differential Revision: http://reviews.llvm.org/D16813
llvm-svn: 260024
Tobias Grosser [Sun, 7 Feb 2016 08:11:36 +0000 (08:11 +0000)]
Do not yet consider loads with non-canonical element size for load hoisting.
Invariant load hoisting of memory accesses with non-canonical element
types lacks support for equivalence classes that contain elements of
different width/size. This support should be added, but to get our buildbots
back to green, we disable load hoisting for memory accesses with non-canonical
element size for now.
llvm-svn: 260023
Xinliang David Li [Sun, 7 Feb 2016 07:13:18 +0000 (07:13 +0000)]
Fix test case problem(caused by clang-format
llvm-svn: 260022
Xinliang David Li [Sun, 7 Feb 2016 06:57:29 +0000 (06:57 +0000)]
[PGO] add profile/coverage test cases for defaulted ctor/ctors
llvm-svn: 260021
Craig Topper [Sun, 7 Feb 2016 06:39:23 +0000 (06:39 +0000)]
Fix typo in comment. NFC
llvm-svn: 260020
Saleem Abdulrasool [Sun, 7 Feb 2016 06:03:38 +0000 (06:03 +0000)]
Driver: adjust linker invocation for GNUTools
Adjust the driver to invoke the linker more similar to gcc. -dynamic-linker is
only passed if -static and -shared are not part of the compiler (driver)
invocation. Replicate the passing of -export-rdynamic as per the GCC link spec:
%{!static: %{rdynamic:-export-dynamic} %{!shared:-dynamic-linker ...}}
This behaviour is consistent across all the targets that are supported, so no
need to conditionalise it on the target.
Resolves PR24245.
llvm-svn: 260019
Duncan P. N. Exon Smith [Sun, 7 Feb 2016 05:06:35 +0000 (05:06 +0000)]
LangRef: Fix example code for cmpxchg
Patch by Daniel Robertson!
llvm-svn: 260018
Saleem Abdulrasool [Sun, 7 Feb 2016 02:30:59 +0000 (02:30 +0000)]
Sema: handle typo correction on ARC'ed ivar
The ivar ref would be transformed by the Typo Correction TreeTransform, but not
be owned, resulting in the source location being invalid. This would eventually
lead to an assertion in findCapturingExpr. Prevent this assertion from
triggering.
Resolves PR25113.
llvm-svn: 260017
Saleem Abdulrasool [Sun, 7 Feb 2016 02:30:55 +0000 (02:30 +0000)]
Sema: handle typo correction with ARC'ed objc properties
We would previously assert in findCapturingExpr when performing a typo
correction resulting in an assignment of an ObjC property with a strong lifetype
specifier due to the expression not being rooted in the file (invalid SLoc)
during the retain cycle check on the typo-corrected expression. Handle the
expression type appropriately during the TreeTransform to ensure that we have a
source location associated with the expression.
Fixes PR26486.
llvm-svn: 260016
Daniel Berlin [Sun, 7 Feb 2016 02:03:39 +0000 (02:03 +0000)]
Don't use module context here. It's unnecessary and makes it harder to write unittests
llvm-svn: 260015
Daniel Berlin [Sun, 7 Feb 2016 01:52:19 +0000 (01:52 +0000)]
Compute live-in for MemorySSA
llvm-svn: 260014
Daniel Berlin [Sun, 7 Feb 2016 01:52:15 +0000 (01:52 +0000)]
Only insert into definingblocks once per block
llvm-svn: 260013
Eric Fiselier [Sun, 7 Feb 2016 00:36:33 +0000 (00:36 +0000)]
Cleanup node-type handling in the unordered containers
This patch is the first in a series of patches that's meant to better
support unordered_map. unordered_map has a special "value_type" that
differs from pair<const Key, Value>. In order to meet the EmplaceConstructible
and CopyInsertable requirements we need to teach __hash_table about this
special value_type.
This patch creates a "__hash_node_types" traits class that contains
all of the typedefs needed by the unordered containers and it's iterators.
These typedefs include ones for each node type and node pointer type,
as well as special typedefs for "unordered_map"'s value type.
As a result of this change all of the unordered containers now all support
incomplete types.
As a drive-by fix I changed the difference_type in __hash_table to always
be ptrdiff_t. There is a corresponding change to size_type but it cannot
take affect until an ABI break.
This patch will be followed up shortly with fixes for various unordered_map
fixes.
llvm-svn: 260012
Saleem Abdulrasool [Sat, 6 Feb 2016 22:36:34 +0000 (22:36 +0000)]
Index: provide adjustment thunk information for C++ manglings
Add support for exposing the adjustment thunk for virtual methods as
appropriate.
llvm-svn: 260011
Simon Pilgrim [Sat, 6 Feb 2016 22:09:25 +0000 (22:09 +0000)]
[X86][AVX2] Regenerated broadcast domain tests
llvm-svn: 260010
Tobias Grosser [Sat, 6 Feb 2016 21:23:39 +0000 (21:23 +0000)]
IslNodeBuilder: Invariant load hoisting of elements with differing sizes
Always use access-instruction pointer type to load the invariant values.
Otherwise mismatches between ScopArrayInfo element type and memory access
element type will result in invalid casts. These type mismatches are after
r259784 a lot more common and also arise with types of different size, which
have not been handled before.
Interestingly, this change actually simplifies the code, as we now have only
one code path that is always taken, rather then a standard code path for the
common case and a "fixup" code path that replaces the standard code path in
case of mismatching types.
llvm-svn: 260009
Simon Pilgrim [Sat, 6 Feb 2016 20:11:52 +0000 (20:11 +0000)]
[X86][SSE] Add tests for MOVHLPS/MOVLHPS shuffle lowering.
As raised in PR26491, we don't make use of these instructions at the moment.
llvm-svn: 260008
Simon Pilgrim [Sat, 6 Feb 2016 19:51:21 +0000 (19:51 +0000)]
[X86][AVX512] Added support for VPMOVZX shuffle decoding.
llvm-svn: 260007
Philip Reames [Sat, 6 Feb 2016 19:43:40 +0000 (19:43 +0000)]
[docs] Warn against slow serial builds
llvm-svn: 260006
Justin Lebar [Sat, 6 Feb 2016 19:32:44 +0000 (19:32 +0000)]
[NVPTX] Mark nvvm synchronizing intrinsics as convergent.
Summary:
This is the attribute purpose-made for e.g. __syncthreads. It appears
that NoDuplicate may not be sufficient to prevent Sink from touching a
call to __syncthreads.
Reviewers: jingyue, hfinkel
Subscribers: llvm-commits, jholewinski, jhen, rnk, tra, majnemer
Differential Revision: http://reviews.llvm.org/D16941
llvm-svn: 260005
Philip Reames [Sat, 6 Feb 2016 19:29:23 +0000 (19:29 +0000)]
[docs] Redirect new contributors to the right starting point
llvm-svn: 260004
Philip Reames [Sat, 6 Feb 2016 19:20:26 +0000 (19:20 +0000)]
[docs] Clarify a couple of getting started issues identified during Sprint
llvm-svn: 260003
Adrian Prantl [Sat, 6 Feb 2016 18:39:34 +0000 (18:39 +0000)]
Add a missing call to MDNode::deleteTemporary().
Follow-up to r259975. Kudos to the ASAN bots!
<rdar://problem/
24493203>
llvm-svn: 260002
Kamil Rytarowski [Sat, 6 Feb 2016 18:19:29 +0000 (18:19 +0000)]
Introduce NetBSD support
Current FreeBSD and NetBSD code is compatible.
llvm-svn: 260001
Simon Pilgrim [Sat, 6 Feb 2016 18:07:19 +0000 (18:07 +0000)]
[X86][AVX512] Fixed prefix ordering for lzcnt tests.
Let AVX512 targets share the same CHECKs.
llvm-svn: 260000
Simon Pilgrim [Sat, 6 Feb 2016 17:57:15 +0000 (17:57 +0000)]
[X86][SSE] Regenerate vector shift tests
llvm-svn: 259999
Devin Coughlin [Sat, 6 Feb 2016 17:17:32 +0000 (17:17 +0000)]
[analyzer] DeallocChecker: Don't warn on release of readonly assign property in dealloc.
It is common for the ivars for read-only assign properties to always be stored retained,
so don't warn for a release in dealloc for the ivar backing these properties.
llvm-svn: 259998
Simon Pilgrim [Sat, 6 Feb 2016 17:02:15 +0000 (17:02 +0000)]
[X86][SSE] Moved shuffle decode CASE macros earlier. NFC.
To allow the helper functions to make use of them.
llvm-svn: 259997
Simon Pilgrim [Sat, 6 Feb 2016 16:33:42 +0000 (16:33 +0000)]
[X86][SSE] Refactored PMOVZX shuffle decoding to use scalar input types
First step towards being able to decode AVX512 PMOVZX instructions without a massive bloat in the shuffle decode switch statement.
This should also make it easier to decode X86ISD::VZEXT target shuffles in the future.
llvm-svn: 259995
Kamil Rytarowski [Sat, 6 Feb 2016 16:23:18 +0000 (16:23 +0000)]
Adapt LLVM_CMAKE_PATH for recent cmake path changes
Current LLVM installs CMake files under lib/cmake/llvm.
llvm-svn: 259994
Teresa Johnson [Sat, 6 Feb 2016 16:07:35 +0000 (16:07 +0000)]
[ThinLTO] Include linkage type in function summary
Summary:
Adds the linkage type to both the per-module and combined function
summaries, which subsumes the current islocal bit. This will eventually
be used to optimized linkage types based on global summary-based
analysis.
Reviewers: joker.eph
Subscribers: joker.eph, davidxl, llvm-commits
Differential Revision: http://reviews.llvm.org/D16943
llvm-svn: 259993
Simon Pilgrim [Sat, 6 Feb 2016 15:38:25 +0000 (15:38 +0000)]
line endings fix
llvm-svn: 259992
Simon Pilgrim [Sat, 6 Feb 2016 15:37:09 +0000 (15:37 +0000)]
[X86][SSE] Don't replace an existing 32-bit load with its duplicate
If we are already loading a single 32-bit float/integer then just reuse it.
Fix for regression in D16729
llvm-svn: 259991
Simon Pilgrim [Sat, 6 Feb 2016 14:21:49 +0000 (14:21 +0000)]
Comment fix
llvm-svn: 259990
Ashutosh Nema [Sat, 6 Feb 2016 12:34:41 +0000 (12:34 +0000)]
Corrected tests for Loop Versioning LICM, by adding “REQUIRES: asserts”.
Earlier they were failing under no-assert build.
llvm-svn: 259989
Ashutosh Nema [Sat, 6 Feb 2016 09:24:37 +0000 (09:24 +0000)]
Fixed short underline error in LangRef.rst for recently added
metadata 'llvm.loop.licm_versioning.disable' description.
llvm-svn: 259988
Michael Kruse [Sat, 6 Feb 2016 09:19:40 +0000 (09:19 +0000)]
Follow uses to create value MemoryAccesses
The previously implemented approach is to follow value definitions and
create write accesses ("push defs") while searching for uses. This
requires the same relatively validity- and requirement conditions to be
replicated at multiple locations (PHI instructions, other instructions,
uses by PHIs).
We replace this by iterating over the uses in a SCoP ("pull in
requirements"), and add writes only when at least one read has been
added. It turns out to be simpler code because each use is only iterated
over once and writes are added for the first access that reads it. We
need another iteration to identify escaping values (uses not in the
SCoP), which also makes the difference between such accesses more
obvious. As a side-effect, the order of scalar MemoryAccess can change.
Differential Revision: http://reviews.llvm.org/D15706
llvm-svn: 259987
Ashutosh Nema [Sat, 6 Feb 2016 07:47:48 +0000 (07:47 +0000)]
New Loop Versioning LICM Pass
Summary:
When alias analysis is uncertain about the aliasing between any two accesses,
it will return MayAlias. This uncertainty from alias analysis restricts LICM
from proceeding further. In cases where alias analysis is uncertain we might
use loop versioning as an alternative.
Loop Versioning will create a version of the loop with aggressive aliasing
assumptions in addition to the original with conservative (default) aliasing
assumptions. The version of the loop making aggressive aliasing assumptions
will have all the memory accesses marked as no-alias. These two versions of
loop will be preceded by a memory runtime check. This runtime check consists
of bound checks for all unique memory accessed in loop, and it ensures the
lack of memory aliasing. The result of the runtime check determines which of
the loop versions is executed: If the runtime check detects any memory
aliasing, then the original loop is executed. Otherwise, the version with
aggressive aliasing assumptions is used.
The pass is off by default and can be enabled with command line option
-enable-loop-versioning-licm.
Reviewers: hfinkel, anemet, chatur01, reames
Subscribers: MatzeB, grosser, joker.eph, sanjoy, javed.absar, sbaranga,
llvm-commits
Differential Revision: http://reviews.llvm.org/D9151
llvm-svn: 259986
Samuel Antao [Sat, 6 Feb 2016 06:52:48 +0000 (06:52 +0000)]
Re-apply r259977 - [OpenMP] Reorganize code to allow specialized code generation for different devices.
This was reverted due to a failure in a buildbot, but it turned out the failure was unrelated.
llvm-svn: 259985
Samuel Antao [Sat, 6 Feb 2016 06:22:46 +0000 (06:22 +0000)]
Revert r259977 - [OpenMP] Reorganize code to allow specialized code generation for different devices.
It triggered some problem in the configuration related with zlib and exposed in the driver.
llvm-svn: 259984
Jason Molenda [Sat, 6 Feb 2016 04:55:26 +0000 (04:55 +0000)]
ProcessMachCore scans through the core file pages looking for a
user process dyld binary and/or a mach kernel binary image. By
default, it prefers the kernel if it finds both.
But if it finds two kernel binary images (which can happen when
random things are mapped into memory), it may pick the wrong
kernel image.
DynamicLoaderDarwinKernel has heuristics to find a kernel in memory;
once we've established that there is a kernel binary in memory,
call over to that class to see if it can find a kernel address via
its search methods. If it does, use that.
Some minor cleanups to DynamicLoaderDarwinKernel while I was at it.
<rdar://problem/
24446112>
llvm-svn: 259983
Kostya Serebryany [Sat, 6 Feb 2016 04:50:30 +0000 (04:50 +0000)]
[asan] trying to fix the non-x86 bots
llvm-svn: 259981
Kostya Serebryany [Sat, 6 Feb 2016 03:22:24 +0000 (03:22 +0000)]
[asan] properly report an un-aligned global variable instead of just crashing
llvm-svn: 259979
Kostya Serebryany [Sat, 6 Feb 2016 02:37:39 +0000 (02:37 +0000)]
[asan] disabled one subtest in scariness_score_test.cc that may fail when running under GNU make. Add more subtests
llvm-svn: 259978
Samuel Antao [Sat, 6 Feb 2016 02:12:34 +0000 (02:12 +0000)]
[OpenMP] Reorganize code to allow specialized code generation for different devices.
Summary:
Different devices may in some cases require different code generation schemes in order to implement OpenMP. This is required not only for performance reasons, but also because it may not be possible to have the current (default) implementation working for these devices. E.g. GPU's cannot implement the same scheme a target such as powerpc or x86b would use, in the sense that it does not have the ability to fork threads, instead all the threads are always executing and need to be managed by the implementation.
This patch proposes a reorganization of the code in the OpenMP code generation to pave the way to have specialized implementation of OpenMP support. More than a "real" patch this is more a request for comments in order to understand if what is proposed is acceptable or if there are better/easier ways to do it.
In this patch part of the common OpenMP codegen infrastructure is moved to a new file under a new namespace (CGOpenMPCommon) so it can be shared between the default implementation and the specialized one. When CGOpenMPRuntime is created, an attempt to select a specialized implementation is done.
In the patch a specialization for nvptx targets is done which currently checks if the target is an OpenMP device and trap if it is not.
Let me know comments suggestions you may have.
Reviewers: hfinkel, carlo.bertolli, arpith-jacob, kkwli0, ABataev
Subscribers: Hahnfeld, cfe-commits, fraggamuffin, caomhin, jholewinski
Differential Revision: http://reviews.llvm.org/D16784
llvm-svn: 259977
Richard Smith [Sat, 6 Feb 2016 02:06:43 +0000 (02:06 +0000)]
[modules] Compress files embedded into a .pcm file, to reduce the disk usage of -fembed-all-files mode.
llvm-svn: 259976
Adrian Prantl [Sat, 6 Feb 2016 01:59:09 +0000 (01:59 +0000)]
Fix a crash when emitting dbeug info for forward-declared scoped enums.
It is possible for enums to be created as part of their own
declcontext. We need to cache a placeholder to avoid the type being
created twice before hitting the cache.
<rdar://problem/
24493203>
llvm-svn: 259975