| Commit message (Collapse) | Author | Age | Files | Lines | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
r287028 fixed the llvm-symbolizer issue that broke this test.
Differential Revision: https://reviews.llvm.org/D26537
llvm-svn: 287029
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
Sometimes, llvm-symbolizer gives wrong results due to incorrect sizes of some symbols. The reason for that was an incorrectly sorted array in computeSymbolSizes. The comparison function used subtraction of unsigned types, which is incorrect. Let's change this to return explicit -1 or 1.
Differential Revision: https://reviews.llvm.org/D26537
llvm-svn: 287028
 | 
| | 
| 
| 
|  | 
llvm-svn: 287027
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
On Darwin, we're running the TSan unit tests without interceptors. To make sure TSan observes all the pthread events (thread creating, thread join, condvar signal, etc.) in tsan_posix.cc, we should call the pthread interceptors directly, as we already do in tsan_test_util_posix.cc. This fixes some flaky failures on Darwin bots.
Differential Revision: https://reviews.llvm.org/D26639
llvm-svn: 287026
 | 
| | 
| 
| 
| 
| 
|  | 
Fixed possible use of stack variable after deletion.
llvm-svn: 287025
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
clang_getTemplateArgumentAsType to other kind of specializations.
Patch by Emilio Cobos Álvarez!
https://reviews.llvm.org/D26663
llvm-svn: 287024
 | 
| | 
| 
| 
| 
| 
| 
|  | 
Specifically, we don't want to segfault on release builds, so print the problem
instead.
llvm-svn: 287022
 | 
| | 
| 
| 
| 
| 
| 
|  | 
Also respect the TII hook for these like the generic code does
in case we want a flag later to disable this.
llvm-svn: 287021
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Adding a Clang Format file to libc++ and which style it should use has been
discussed a couple of times. This patch finally adds a .clang-format file
which specifies LLVM styles.
Personally I dislike how the LLVM style handles much of the meta-programming
in libc++. However the general consensus was that libc++ should prefer the
LLVM style and make adjustments where needed.
Note that using clang-format on changes is not required, especially for
changes within the headers. However formatting tests should be encouraged.
llvm-svn: 287020
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Lower a = b * C where C = (2^n + 1) * 2^m to
add     w0, w0, w0, lsl n
lsl     w0, w0, m
Differential Revision: https://reviews.llvm.org/D229245
llvm-svn: 287019
 | 
| | 
| 
| 
| 
| 
| 
|  | 
Fixes giving up on clustering common addr64 accesses with
constant 0 soffset.
llvm-svn: 287018
 | 
| | 
| 
| 
| 
| 
|  | 
Differential Revision: https://reviews.llvm.org/D26618
llvm-svn: 287017
 | 
| | 
| 
| 
|  | 
llvm-svn: 287016
 | 
| | 
| 
| 
|  | 
llvm-svn: 287015
 | 
| | 
| 
| 
| 
| 
|  | 
be made target specific.
llvm-svn: 287014
 | 
| | 
| 
| 
|  | 
llvm-svn: 287013
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Summary:
This makes these functions available on host and device, which is
necessary to compile <complex> for the device.
Reviewers: hfinkel, EricWF
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D25403
llvm-svn: 287012
 | 
| | 
| 
| 
|  | 
llvm-svn: 287011
 | 
| | 
| 
| 
| 
| 
|  | 
This reverts part of r287009 because I accidentally changed binary files.
llvm-svn: 287010
 | 
| | 
| 
| 
|  | 
llvm-svn: 287009
 | 
| | 
| 
| 
|  | 
llvm-svn: 287008
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
The wave barrier represents the discardable barrier. Its main purpose is to
carry convergent attribute, thus preventing illegal CFG optimizations. All lanes
in a wave come to convergence point simultaneously with SIMT, thus no special
instruction is needed in the ISA. The barrier is discarded during code generation.
Differential Revision: https://reviews.llvm.org/D26585
llvm-svn: 287007
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
The wave barrier represents the discardable barrier. Its main purpose is to
carry convergent attribute, thus preventing illegal CFG optimizations. All lanes
in a wave come to convergence point simultaneously with SIMT, thus no special
instruction is needed in the ISA. The barrier is discarded during code generation.
Differential Revision: https://reviews.llvm.org/D26584
llvm-svn: 287006
 | 
| | 
| 
| 
| 
| 
| 
|  | 
Thi way the compiler can pick the optimal storage duration. It's also
more readable. No functional change intended.
llvm-svn: 287005
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
and istream_iterator. No code changes were needed, but I updated a few tests.  Also resolved P0509 and P0521, which required no changes to the library or tests."
This reverts commit r286884, because it breaks the Xcode 7 builders:
  http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-expensive/1583
Here is a PR that tracks the issue:
https://llvm.org/bugs/show_bug.cgi?id=31016
llvm-svn: 287004
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
Also, fix the test params to use an attribute rather than a CPU model
and remove the AVX run because that does nothing but check for a 'v'
prefix in all of these tests.
llvm-svn: 287003
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
The code to handle symbol versions is getting tricky and hard to
understand, so it is probably time to simplify it. This patch does
the following.
 - Add `DemangledSyms` variable to SymbolTable so that we don't
   need to pass it around to findDemangled.
 - Define `initDemangledSyms` to initialize the variable lazily.
 - hasExternCpp is removed because we no longer have to initialize
   the map eagerly.
 - scanScriptVersion is split.
 - Comments are updated.
llvm-svn: 287002
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
The CallAndMessageChecker has an existing check for when a function pointer
is called with too few arguments. Extend this logic to handle the block
case, as well. While we're at it, do a drive-by grammar correction
("less" --> "fewer") on the diagnostic text.
llvm-svn: 287001
 | 
| | 
| 
| 
| 
| 
|  | 
NFC
llvm-svn: 287000
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
In RateRegister of existing LSR, if a formula contains a Reg which is a SCEVAddRecExpr,
and this SCEVAddRecExpr's loop is an outerloop, the formula will be marked as Loser
and dropped.
Suppose we have an IR that %for.body is outerloop and %for.body2 is innerloop. LSR only
handle inner loop now so only %for.body2 will be handled.
Using the logic above, formula like
reg(%array) + reg({1,+, %size}<%for.body>) + 1*reg({0,+,1}<%for.body2>) will be dropped
no matter what because reg({1,+, %size}<%for.body>) is a SCEVAddRecExpr type reg related
with outerloop. Only formula like
reg(%array) + 1*reg({{1,+, %size}<%for.body>,+,1}<nuw><nsw><%for.body2>) will be kept
because the SCEVAddRecExpr related with outerloop is folded into the initial value of the
SCEVAddRecExpr related with current loop.
But in some cases, we do need to share the basic induction variable
reg{0 ,+, 1}<%for.body2> among LSR Uses to reduce the final total number of induction
variables used by LSR, so we don't want to drop the formula like
reg(%array) + reg({1,+, %size}<%for.body>) + 1*reg({0,+,1}<%for.body2>) unconditionally.
From the existing comment, it tries to avoid considering multiple level loops at the same time.
However, existing LSR only handles innermost loop, so for any SCEVAddRecExpr with a loop other
than current loop, it is an invariant and will be simple to handle, and the formula doesn't have
to be dropped.
Differential Revision: https://reviews.llvm.org/D26429
llvm-svn: 286999
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Summary:
This fixes the runtime results produces by the fallback multiplication expansion introduced in r270720.
For tests I created a fuzz tester that compares the results with Boost.Multiprecision.
Reviewers: hfinkel
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D26628
llvm-svn: 286998
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Summary:
In a 32-bit address space, PC-relative jump targets are wrapped, so a
direct branch at 0x90000001 can reach address 0x10000000 with a
displacement of 0x7FFFFFFFF. This can happen in applications, such as
Chrome, that are linked with /LARGEADDRESSAWARE.
Reviewers: etienneb
Subscribers: mgorny, llvm-commits
Differential Revision: https://reviews.llvm.org/D26650
llvm-svn: 286997
 | 
| | 
| 
| 
|  | 
llvm-svn: 286996
 | 
| | 
| 
| 
|  | 
llvm-svn: 286994
 | 
| | 
| 
| 
|  | 
llvm-svn: 286993
 | 
| | 
| 
| 
| 
| 
| 
|  | 
In this file, `sym` was used for both SymbolBody and SymbolVersion
although the two are completely different.
llvm-svn: 286992
 | 
| | 
| 
| 
| 
| 
| 
|  | 
We had two functions with the same name to read completely different
things. That was confusing.
llvm-svn: 286991
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
constructor
Summary: Fixes PR30835
Reviewers: alexfh, hokein, aaron.ballman
Subscribers: Prazek, cfe-commits
Differential Revision: https://reviews.llvm.org/D26118
llvm-svn: 286990
 | 
| | 
| 
| 
|  | 
llvm-svn: 286989
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
When both WidenIV::getWideRecurrence and WidenIV::getExtendedOperandRecurrence
return non-null but different WideAddRec, if getWideRecurrence is called
before getExtendedOperandRecurrence, we won't bother to call
getExtendedOperandRecurrence again. But As we know it is possible that after
SCEV folding, we cannot prove the legality using the SCEVAddRecExpr returned
by getWideRecurrence. Meanwhile if getExtendedOperandRecurrence returns non-null
WideAddRec, we know for sure that it is legal to do widening for current instruction.
So it is better to put getExtendedOperandRecurrence before getWideRecurrence, which
will increase the chance of successful widening.
Differential Revision: https://reviews.llvm.org/D26059
llvm-svn: 286987
 | 
| | 
| 
| 
|  | 
llvm-svn: 286984
 | 
| | 
| 
| 
|  | 
llvm-svn: 286983
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
With a max_load_factor of 1.0, the only guarantee is that
bucket_count() >= size(). (Note: setting max_load_factor without
rehashing isn't supposed to affect this, because setting
max_load_factor is currently specified to be constant time.)
llvm-svn: 286982
 | 
| | 
| 
| 
| 
| 
|  | 
This silences some warnings that I didn't see with my host compiler.
llvm-svn: 286981
 | 
| | 
| 
| 
| 
| 
|  | 
Just needed to add the intrinsics to the exist switch. The code is generic enough to support the wider vectors with no changes.
llvm-svn: 286980
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
This patch helps avoids poor legalization of boolean vector results (e.g. 8f32 -> 8i1 -> 8i16) that feed into SINT_TO_FP by inserting an early SIGN_EXTEND and so help improve the truncation logic.
This is not necessary for AVX512 targets where boolean vectors are legal - AVX512 manages to lower ( sint_to_fp vXi1 ) into some form of ( select mask, 1.0f , 0.0f ) in most cases.
Fix for PR13248
Differential Revision: https://reviews.llvm.org/D26583
llvm-svn: 286979
 | 
| | 
| 
| 
|  | 
llvm-svn: 286978
 | 
| | 
| 
| 
|  | 
llvm-svn: 286977
 | 
| | 
| 
| 
| 
| 
|  | 
This reverts commit ac54d0066c478a09c7cd28d15d0f9ff8af984afc.
llvm-svn: 286976
 | 
| | 
| 
| 
| 
| 
|  | 
This reverts commit f2c2f5354070469dac253373c66527ca971ddc66.
llvm-svn: 286975
 |