David Majnemer [Mon, 25 Jul 2016 02:21:19 +0000 (02:21 +0000)]
[Utils] Simplify combineMetadata
Use a range-based for loop, no functional change is intended.
llvm-svn: 276600
Eric Fiselier [Mon, 25 Jul 2016 02:08:55 +0000 (02:08 +0000)]
Make std::is_assignable tolerate references to incomplete types.
llvm-svn: 276599
Eric Fiselier [Mon, 25 Jul 2016 01:45:07 +0000 (01:45 +0000)]
Revert r276548 - Make pair/tuples assignment operators SFINAE properly.
This is a breaking change. The SFINAE required is instantiated the second
the class is instantiated, and this can cause hard SFINAE errors
when applied to references to incomplete types. Ex.
struct IncompleteType;
extern IncompleteType it;
std::tuple<IncompleteType&> t(it); // SFINAE will blow up.
llvm-svn: 276598
NAKAMURA Takumi [Mon, 25 Jul 2016 00:59:51 +0000 (00:59 +0000)]
Untabify.
llvm-svn: 276597
NAKAMURA Takumi [Mon, 25 Jul 2016 00:59:46 +0000 (00:59 +0000)]
Trailing whitespace.
llvm-svn: 276596
Eric Fiselier [Mon, 25 Jul 2016 00:50:32 +0000 (00:50 +0000)]
Make dtor_noexcept.pass.cpp tests more portable. Patch from STL@microsoft.com
llvm-svn: 276595
Eric Fiselier [Mon, 25 Jul 2016 00:48:36 +0000 (00:48 +0000)]
Don't SFINAE pair's copy assignment operator in C++03 mode.
In C++03 mode evaluating the SFINAE can cause a hard error due to
access control violations. This is a problem because the SFINAE
is evaluated as soon as the class is instantiated, and not later.
llvm-svn: 276594
Eric Fiselier [Mon, 25 Jul 2016 00:26:41 +0000 (00:26 +0000)]
Mark bucket_count() assertions as non-portable. Patch from STL@microsoft.com
llvm-svn: 276593
Davide Italiano [Mon, 25 Jul 2016 00:25:18 +0000 (00:25 +0000)]
[ELF] Fix the semantic of PROVIDE in linker scripts.
PROVIDE request us to define a symbol only if it is referenced and is
not defined by any object included in the link. We created the
symbol in the symbol table no matter what.
Differential Revision: https://reviews.llvm.org/D22739
llvm-svn: 276592
Eric Fiselier [Mon, 25 Jul 2016 00:18:12 +0000 (00:18 +0000)]
Make move_assign_noexcept.pass.cpp tests more portable. Patch from STL@microsoft.com
llvm-svn: 276591
Eric Fiselier [Mon, 25 Jul 2016 00:15:29 +0000 (00:15 +0000)]
Make swap_noexcept.pass.cpp tests more portable. Patch from STL@microsoft.com.
See D21820 for more information (https://reviews.llvm.org/D21820).
llvm-svn: 276590
Eric Fiselier [Mon, 25 Jul 2016 00:02:23 +0000 (00:02 +0000)]
Work around MSVC's non-standard ABI for enums. Patch from STL@microsoft.com
llvm-svn: 276589
Eric Fiselier [Sun, 24 Jul 2016 23:49:42 +0000 (23:49 +0000)]
Fix a non-standard allocator in vector tests. Patch from STL@microsoft.com
llvm-svn: 276588
Eric Fiselier [Sun, 24 Jul 2016 23:48:26 +0000 (23:48 +0000)]
Fix unique_ptr.runtime tests for null inputs. Patch from STL@microsoft.com
llvm-svn: 276587
Rui Ueyama [Sun, 24 Jul 2016 23:47:31 +0000 (23:47 +0000)]
Simplify. NFC.
llvm-svn: 276586
Eric Fiselier [Sun, 24 Jul 2016 23:36:18 +0000 (23:36 +0000)]
Fix portability issues in <random> tests. Patch from STL@microsoft.com
llvm-svn: 276585
Eric Fiselier [Sun, 24 Jul 2016 23:34:18 +0000 (23:34 +0000)]
Mark bucket() assertions as non-portable. Patch from STL@microsoft.com
llvm-svn: 276584
Eric Fiselier [Sun, 24 Jul 2016 23:32:48 +0000 (23:32 +0000)]
Fix MSVC unreferenced parameter warning. Patch from STL@microsoft.com
llvm-svn: 276583
Davide Italiano [Sun, 24 Jul 2016 23:29:18 +0000 (23:29 +0000)]
[ELF] Move linker script tests to a subdirectory. NFCI.
llvm-svn: 276582
Eric Fiselier [Sun, 24 Jul 2016 23:19:51 +0000 (23:19 +0000)]
Make move_noexcept.pass.cpp tests more portable. Patch from STL@microsoft.com
llvm-svn: 276581
Eric Fiselier [Sun, 24 Jul 2016 23:16:37 +0000 (23:16 +0000)]
Make bucket_count() greater-equal assertions portable. Patch from STL@microsoft.com
llvm-svn: 276580
Davide Italiano [Sun, 24 Jul 2016 23:13:48 +0000 (23:13 +0000)]
[ELF] Support PROVIDE/PROVIDE_HIDDEN inside output sections description.
Differential Revision: https://reviews.llvm.org/D22738
llvm-svn: 276579
Eric Fiselier [Sun, 24 Jul 2016 23:13:36 +0000 (23:13 +0000)]
Mark bucket_size() assertions as non-portible. Patch from STL@microsoft.com
llvm-svn: 276578
George Burgess IV [Sun, 24 Jul 2016 23:12:40 +0000 (23:12 +0000)]
[Sema] Replace mem_fn with lambdas. NFC.
I'm told that some optimizers like lambdas a lot more than mem_fn.
Given that the readability difference is basically nil, and we seem to
use lambdas basically everywhere else, it seems sensible to just use
lambdas.
llvm-svn: 276577
Eric Fiselier [Sun, 24 Jul 2016 23:08:21 +0000 (23:08 +0000)]
Guard libc++ specific tests SFINAE on std::bind's call operator. Patch from STL@microsoft.com
llvm-svn: 276576
Rui Ueyama [Sun, 24 Jul 2016 23:05:57 +0000 (23:05 +0000)]
Merge readSymbolAssignment with readAssignment. NFC.
llvm-svn: 276575
Rui Ueyama [Sun, 24 Jul 2016 18:19:40 +0000 (18:19 +0000)]
Make readExpr return an Expr object instead of a vector of tokens.
Previously, we handled an expression as a vector of tokens. In other
words, an expression was a vector of uncooked raw StringRefs.
When we need a value of an expression, we used ExprParser to run
the expression.
The separation was needed essentially because parse time is too
early to evaluate an expression. In order to evaluate an expression,
we need to finalize section sizes. Because linker script parsing
is done at very early stage of the linking process, we can't
evaluate expressions while parsing.
The above mechanism worked fairly well, but there were a few
drawbacks.
One thing is that we sometimes have to parse the same expression
more than once in order to find the end of the expression.
In some contexts, linker script expressions have no clear end marker.
So, we needed to recognize balanced expressions and ternary operators.
The other is poor error reporting. Since expressions are parsed
basically twice, and some information that is available at the first
stage is lost in the second stage, it was hard to print out
apprpriate error messages.
This patch fixes the issues with a new approach.
Now the expression parsing is integrated into ScriptParser.
ExprParser class is removed. Expressions are represented as lambdas
instead of vectors of tokens. Lambdas captures information they
need to run themselves when they are created.
In this way, ends of expressions are naturally detected, and
errors are handled in the usual way. This patch also reduces
the amount of code.
Differential Revision: https://reviews.llvm.org/D22728
llvm-svn: 276574
David Majnemer [Sun, 24 Jul 2016 17:44:03 +0000 (17:44 +0000)]
[Driver] Switch some getenv calls to llvm::sys::Process::GetEnv
No functional change is intended.
llvm-svn: 276573
David Majnemer [Sun, 24 Jul 2016 17:19:59 +0000 (17:19 +0000)]
[CommandLine] Use Process::GetEnv instead of _wgetenv
Process::GetEnv does the right thing across our platforms.
CommandLine.cpp had, more or less, the same logic. Let's remove the
duplication.
No functional change is intended.
llvm-svn: 276572
Simon Pilgrim [Sun, 24 Jul 2016 16:39:50 +0000 (16:39 +0000)]
[X86][SSE] Added PR27854 tests
llvm-svn: 276571
Simon Pilgrim [Sun, 24 Jul 2016 16:10:21 +0000 (16:10 +0000)]
[X86] Add shift double tests for PR14593
llvm-svn: 276570
Simon Pilgrim [Sun, 24 Jul 2016 16:00:53 +0000 (16:00 +0000)]
[X86] Add 'FeatureSlowSHLD' to cpu 'bdver4'
As with all AMD CPUs, excavator has poor SHLD/SHRD performance. Also added bdver3 to the test as it was missing.
llvm-svn: 276569
Simon Pilgrim [Sun, 24 Jul 2016 15:47:44 +0000 (15:47 +0000)]
[X86] Add SHRD shift combine tests
llvm-svn: 276568
Simon Pilgrim [Sun, 24 Jul 2016 15:38:51 +0000 (15:38 +0000)]
[X86] Regenerate shift by parts tests
llvm-svn: 276567
Simon Pilgrim [Sun, 24 Jul 2016 15:25:36 +0000 (15:25 +0000)]
[X86][SSE] Regenerate shifts tests
llvm-svn: 276566
Simon Pilgrim [Sun, 24 Jul 2016 15:17:50 +0000 (15:17 +0000)]
[X86][SSE] Regenerate SSE copysign tests
llvm-svn: 276565
Craig Topper [Sun, 24 Jul 2016 14:58:06 +0000 (14:58 +0000)]
[X86] Block pbroadcastq instructions on 32-bit targets instead of pbroadcastb.
Thanks to Simon Pilgrim for catching the mistake.
llvm-svn: 276564
Simon Pilgrim [Sun, 24 Jul 2016 13:01:51 +0000 (13:01 +0000)]
[X86][AVX512VL] Added AVX512VL half2float vector conversions tests to demonstrate PR23941
llvm-svn: 276563
Craig Topper [Sun, 24 Jul 2016 08:26:38 +0000 (08:26 +0000)]
[X86] Make the FMA3 instruction names consistent between VEX and EVEX encoded versions.
This places the 132/213/231 form number in front of the SS/SD/PS/PD. Move the Y for 256-bit versions to be after the PS/PD. Change the AVX512 scalar forms to include a Z in the their name. This new format should be consistent with the general naming of instructions.
llvm-svn: 276559
Eric Fiselier [Sun, 24 Jul 2016 08:16:37 +0000 (08:16 +0000)]
commit test missing from r276556
llvm-svn: 276558
Artem Dergachev [Sun, 24 Jul 2016 08:15:58 +0000 (08:15 +0000)]
[analyzer] Pring LocationContext in ExplodedGraph dumps.
Remove some FIXMEs in the surrounding code,
which have been addressed long time ago
by introducing checker-specific tags.
Differential Revision: https://reviews.llvm.org/D22622
llvm-svn: 276557
Eric Fiselier [Sun, 24 Jul 2016 07:42:13 +0000 (07:42 +0000)]
Add __is_inplace_type metafunction helper
llvm-svn: 276556
Craig Topper [Sun, 24 Jul 2016 07:32:45 +0000 (07:32 +0000)]
[X86] Replace CodeGenOnly VPSRAVW/D/Q_Int instructions with patterns since the operand types exactly match the normal VPSRAVW/D/Q instructions.
llvm-svn: 276555
Elena Demikhovsky [Sun, 24 Jul 2016 07:24:54 +0000 (07:24 +0000)]
[Loop Vectorizer] Handling loops FP induction variables.
Allowed loop vectorization with secondary FP IVs. Like this:
float *A;
float x = init;
for (int i=0; i < N; ++i) {
A[i] = x;
x -= fp_inc;
}
The auto-vectorization is possible when the induction binary operator is "fast" or the function has "unsafe" attribute.
Differential Revision: https://reviews.llvm.org/D21330
llvm-svn: 276554
George Burgess IV [Sun, 24 Jul 2016 07:03:49 +0000 (07:03 +0000)]
[MSSA] Make EXPENSIVE_CHECKS check more.
checkClobberSanity will now be run for all results of `ClobberWalk`,
instead of just the crazy phi-optimized ones. This can help us catch
cases where our cache is being wonky.
llvm-svn: 276553
Eric Fiselier [Sun, 24 Jul 2016 06:51:55 +0000 (06:51 +0000)]
Start adding benchmarks for vector
llvm-svn: 276552
Tobias Grosser [Sun, 24 Jul 2016 06:43:21 +0000 (06:43 +0000)]
GPGPU: Optimize kernel IR before generating assembly code
We optimize the kernel _after_ dumping the IR we generate to make the IR we
dump easier readable and independent of possible changes in the general
purpose LLVM optimizers.
llvm-svn: 276551
Tobias Grosser [Sun, 24 Jul 2016 06:43:17 +0000 (06:43 +0000)]
GPGPU: Verify kernel IR before generating assembly
llvm-svn: 276550
Eric Fiselier [Sun, 24 Jul 2016 06:22:25 +0000 (06:22 +0000)]
Skip chash computation in insert/emplace if the unconstrained hash matches.
llvm-svn: 276549
Eric Fiselier [Sun, 24 Jul 2016 05:51:11 +0000 (05:51 +0000)]
Make pair/tuples assignment operators SFINAE properly.
llvm-svn: 276548
Eric Fiselier [Sun, 24 Jul 2016 04:41:44 +0000 (04:41 +0000)]
Fix memory leak in test.
llvm-svn: 276547
Eric Fiselier [Sun, 24 Jul 2016 04:16:40 +0000 (04:16 +0000)]
Implement LWG 2393. Check for LValue-callability.
llvm-svn: 276546
Eric Fiselier [Sun, 24 Jul 2016 04:07:22 +0000 (04:07 +0000)]
Implement LWG2328. Rvalue stream extraction should perfect forward.
llvm-svn: 276545
Eric Fiselier [Sun, 24 Jul 2016 03:51:39 +0000 (03:51 +0000)]
Implement P0040r3: Extending memory management tools
llvm-svn: 276544
Rui Ueyama [Sun, 24 Jul 2016 02:05:09 +0000 (02:05 +0000)]
Rollback r276538 and r276540 to unbreak asan bot.
llvm-svn: 276543
George Burgess IV [Sun, 24 Jul 2016 01:50:07 +0000 (01:50 +0000)]
[MSSA] Remove useless assert. NFC.
liveOnEntry is always a MemoryDef; asserting that a MemoryPhi isn't
liveOnEntry, while correct, isn't very helpful. :)
llvm-svn: 276542
Bruno Cardoso Lopes [Sun, 24 Jul 2016 01:27:07 +0000 (01:27 +0000)]
Revert r276539 "Silence -Wpointer-bool-conversion warning after r276324"
Some bots are not happy with the change.
This reverts commit
d307ca28083065851ad969444f3c063562f2d4bd.
llvm-svn: 276541
Rui Ueyama [Sun, 24 Jul 2016 01:18:18 +0000 (01:18 +0000)]
Simplify. NFC.
llvm-svn: 276540
Bruno Cardoso Lopes [Sun, 24 Jul 2016 01:09:03 +0000 (01:09 +0000)]
Silence -Wpointer-bool-conversion warning after r276324
sanitizer_common_interceptors.inc:667:12: warning: address of function 'memchr' will always evaluate to 'true' [-Wpointer-bool-conversion]
if (REAL(memchr)) {
~~ ^~~~~~
llvm-svn: 276539
Rui Ueyama [Sun, 24 Jul 2016 01:06:18 +0000 (01:06 +0000)]
Split LinkerScript::createSections.
createSections is getting longer, so it is probably time to split.
Differential Revision: https://reviews.llvm.org/D22730
llvm-svn: 276538
Eric Fiselier [Sat, 23 Jul 2016 22:19:19 +0000 (22:19 +0000)]
Implement the in_place tags from p0032r3.
That paper also has changes to any/optional but those will
be implemented later.
llvm-svn: 276537
Davide Italiano [Sat, 23 Jul 2016 22:09:04 +0000 (22:09 +0000)]
[ELF/Linkerscript] Define an absolute if we find an undefined.
Otherwhise undefined references to symbols defined in linker scripts
are never resolved.
Differential Revision: https://reviews.llvm.org/D22664
llvm-svn: 276536
Simon Pilgrim [Sat, 23 Jul 2016 21:24:02 +0000 (21:24 +0000)]
[X86][SSE] Added float widened broadcast tests
llvm-svn: 276535
Simon Pilgrim [Sat, 23 Jul 2016 21:15:31 +0000 (21:15 +0000)]
[X86][SSE] Added more widened broadcast tests
Added more vXi16 and vXi8 tests
llvm-svn: 276534
Eric Fiselier [Sat, 23 Jul 2016 20:36:55 +0000 (20:36 +0000)]
Fix undefined behavior in __hash_table
Summary:
This patch attempts to fix the undefined behavior in __hash_table by changing the node pointer types used throughout. The pointer types are changed for raw pointers in the current ABI and for fancy pointers in ABI V2 (since the fancy pointer types may not be ABI compatible).
The UB in `__hash_table` arises because tree downcasts the embedded end node and then deferences that pointer. Currently there are 2 node types in __hash_table:
* `__hash_node_base` which contains the `__next_` pointer.
* `__hash_node` which contains `__hash_` and `__value_`.
Currently the bucket list, iterators, and `__next_` pointers store pointers to `__hash_node` even though they all need to store `__hash_node_base` pointers.
This patch makes that change by introducing a `__next_pointer` typedef which is a pointer to `__hash_node` in the current ABI and `__hash_node_base` afterwards.
One notable change is to the type of `__bucket_list` which used to be defined as `unique_ptr<__node_pointer[], ...>` and is now `unique_ptr<__next_pointer[], ...>` meaning that we now allocate and deallocate different types using a different allocator. I'm going to give this part of the change more thought since it may introduce compatibility issues.
This change is similar to D20786.
Reviewers: mclow.lists, EricWF
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D20787
llvm-svn: 276533
Aaron Ballman [Sat, 23 Jul 2016 20:11:21 +0000 (20:11 +0000)]
Change some more llvm highlighting instances to be text instead. It seems that Pygment does not handle "token" or "none" yet, and this caused the documentation bot to go red.
Patch by Gor Nishanov.
llvm-svn: 276532
Aaron Ballman [Sat, 23 Jul 2016 18:53:35 +0000 (18:53 +0000)]
Switching the highlighting from llvm to none in an attempt to appease the build bot (lab.llvm.org:8011/builders/llvm-sphinx-docs/builds/11984/steps/docs-llvm-html/logs/stdio).
llvm-svn: 276531
Aaron Ballman [Sat, 23 Jul 2016 18:52:21 +0000 (18:52 +0000)]
Removes a warning about duplicate label named _strings from CommandLine.rst.
llvm-svn: 276530
Simon Dardis [Sat, 23 Jul 2016 17:40:48 +0000 (17:40 +0000)]
CODE_OWNERS: Take ownership of the MIPS backend
As agreed with Daniel Sanders, I'm taking over as code owner
for the MIPS backend.
llvm-svn: 276529
Craig Topper [Sat, 23 Jul 2016 16:44:08 +0000 (16:44 +0000)]
[X86] Fix typo in comment.
llvm-svn: 276528
Simon Pilgrim [Sat, 23 Jul 2016 16:19:17 +0000 (16:19 +0000)]
[X86][SSE] Added tests where we should be trying to widen a load+splat into a broadcast
llvm-svn: 276527
Simon Pilgrim [Sat, 23 Jul 2016 15:55:42 +0000 (15:55 +0000)]
[X86][SSE] Regenerated uitofp <2 x i32> -> <2 x float> conversion tests
Demonstrate difference in codegen discussed on PR14760
llvm-svn: 276526
Rui Ueyama [Sat, 23 Jul 2016 14:18:48 +0000 (14:18 +0000)]
Remove Phdr typedef.
I don't think this typedef contributes to readability.
llvm-svn: 276525
Rui Ueyama [Sat, 23 Jul 2016 14:09:58 +0000 (14:09 +0000)]
Make a pure function a non-member file-scoped function.
llvm-svn: 276524
Sanjay Patel [Sat, 23 Jul 2016 13:06:49 +0000 (13:06 +0000)]
[InstCombine] allow icmp (bit-manipulation-intrinsic(), C) folds for vectors
llvm-svn: 276523
Chandler Carruth [Sat, 23 Jul 2016 07:50:05 +0000 (07:50 +0000)]
Fix a GCC error due to this member name also being a type name. This
should fix the build with GCC 4.9 at least. Not sure if this is the
right name or fix, but I've followed up on the original commit.
llvm-svn: 276522
Craig Topper [Sat, 23 Jul 2016 07:16:56 +0000 (07:16 +0000)]
[AVX512] Implement commuting support for EVEX encoded FMA3 instructions.
llvm-svn: 276521
Craig Topper [Sat, 23 Jul 2016 07:16:53 +0000 (07:16 +0000)]
[X86] Make one of the FMA3 commuting methods static. Remove a call to isFMA3 just to get the IsIntrisic flag, instead get it during the first call and pass it along. NFC
llvm-svn: 276520
Craig Topper [Sat, 23 Jul 2016 07:16:50 +0000 (07:16 +0000)]
[X86] Fix switch statement indentation per coding standards.
llvm-svn: 276519
Matt Arsenault [Sat, 23 Jul 2016 07:07:14 +0000 (07:07 +0000)]
AMDGPU: Delete dead code
This has been dead since r269479
llvm-svn: 276518
Xinliang David Li [Sat, 23 Jul 2016 04:28:59 +0000 (04:28 +0000)]
[Profile] Use a flag to enable PGO rather than the profraw filename
Patch by Jake VanAdrighem
Differential Revision: http://reviews.llvm.org/D22608
llvm-svn: 276517
Xinliang David Li [Sat, 23 Jul 2016 04:28:52 +0000 (04:28 +0000)]
[Profile] Use explicit flag to enable IR PGO
Patch by Jake VanAdrighem
Differential Revision: http://reviews.llvm.org/D22607
llvm-svn: 276516
Sean Silva [Sat, 23 Jul 2016 04:22:50 +0000 (04:22 +0000)]
Avoid using a raw AssumptionCacheTracker in various inliner functions.
This unblocks the new PM part of River's patch in
https://reviews.llvm.org/D22706
Conveniently, this same change was needed for D21921 and so these
changes are just spun out from there.
llvm-svn: 276515
Faisal Vali [Sat, 23 Jul 2016 04:05:19 +0000 (04:05 +0000)]
[cxx1z-constexpr-lambda] Make a lambda's closure type eligible as a literal-type in C++1z
Additionally, for pre-C++1z, instead of forbidding a lambda's closure type from being a literal type through circumlocutorily setting HasNonLiteralTypeFieldsOrBases falsely to true -- handle lambda's more directly in CXXRecordDecl::isLiteral().
One additional small step towards implementing constexpr-lambdas.
Thanks to Richard Smith for his review!
https://reviews.llvm.org/D22662
llvm-svn: 276514
David Majnemer [Sat, 23 Jul 2016 04:05:08 +0000 (04:05 +0000)]
[coroutines] Part 1 of N: Documentation
This is the first patch in the coroutine series.
It contains the documentation for the coroutine intrinsics and their usage.
Patch by Gor Nishanov!
Differential Revision: https://reviews.llvm.org/D22603
llvm-svn: 276513
Xinliang David Li [Sat, 23 Jul 2016 03:34:30 +0000 (03:34 +0000)]
Fix buildbot failure
llvm-svn: 276512
Eric Fiselier [Sat, 23 Jul 2016 03:10:56 +0000 (03:10 +0000)]
Implement P0392r0. Integrate filesystem::path and string_view.
llvm-svn: 276511
David Majnemer [Sat, 23 Jul 2016 02:56:49 +0000 (02:56 +0000)]
[LoopUnrollAnalyzer] Handle out of bounds accesses in visitLoad
While we handed loads past the end of an array, we didn't handle loads
_before_ the array.
This fixes PR28062.
N.B. While the bug in the code is obvious, I am struggling to craft a
test case which is reasonable in size.
llvm-svn: 276510
Richard Smith [Sat, 23 Jul 2016 02:39:52 +0000 (02:39 +0000)]
Work around MSVC's lack of support for unrestricted unions by making this
struct a bit bigger under MSVC (this shouldn't be a big deal; we typically
allocate no more than two of these at a time, on the stack).
llvm-svn: 276509
Richard Smith [Sat, 23 Jul 2016 02:32:21 +0000 (02:32 +0000)]
Add -fmodules-ts flag to cc1 for the provisional C++ modules TS, and mark
'module' and 'import' as keywords when the flag is specified.
llvm-svn: 276508
Eric Fiselier [Sat, 23 Jul 2016 01:43:53 +0000 (01:43 +0000)]
Revert r276506 - Diagnose invalid memory order arguments in <atomic>.
There is a bug in Clang 3.6 and earlier that causes compile failures.
I suspect it's due to the usage of member function parameter names in the
attributes.
llvm-svn: 276507
Eric Fiselier [Sat, 23 Jul 2016 01:16:55 +0000 (01:16 +0000)]
[libcxx] Diagnose invalid memory order arguments in <atomic>. Fixes PR21179.
Summary:
This patch uses the __attribute__((enable_if)) hack suggested by @rsmith to diagnose invalid arguments when possible.
In order to diagnose an invalid argument `m` to `f(m)` we provide an additional overload of `f` that is only enabled when `m` is invalid. When that function is enabled it uses __attribute__((unavailable)) to produce a diagnostic message.
Reviewers: mclow.lists, rsmith, jfb, EricWF
Subscribers: bcraig, jfb, rsmith, cfe-commits
Differential Revision: https://reviews.llvm.org/D22557
llvm-svn: 276506
Sanjoy Das [Sat, 23 Jul 2016 00:54:36 +0000 (00:54 +0000)]
[SCEV] Make isImpliedCondOperandsViaRanges smarter
This change lets us prove things like
"{X,+,10} s< 5000" implies "{X+7,+,10} does not sign overflow"
It does this by replacing replacing getConstantDifference by
computeConstantDifference (which is smarter) in
isImpliedCondOperandsViaRanges.
llvm-svn: 276505
Vedant Kumar [Sat, 23 Jul 2016 00:38:11 +0000 (00:38 +0000)]
[cmake] Use a sane default for LLVM_PROFILE_DATA_DIR
It's been pointed out that arbitrarily spraying raw profiles into a
build directory is insane. Doing this wastes a tremendous amount of
space and is also very lossy, since the test harness tends to wipe away
temporary sub-directories (which usually contain relevant profile data).
The new default is a `profiles` directory inside of the build dir.
llvm-svn: 276504
Sanjoy Das [Sat, 23 Jul 2016 00:28:56 +0000 (00:28 +0000)]
[SCEV] Change the interface of computeConstantDifference; NFC
This is in preparation of
s/getConstantDifference/computeConstantDifference/ in a later change.
llvm-svn: 276503
Sanjay Patel [Sat, 23 Jul 2016 00:28:39 +0000 (00:28 +0000)]
[InstCombine] move udiv+cmp fold over with other BinOp+cmp folds; NFCI
llvm-svn: 276502
Sanjay Patel [Sat, 23 Jul 2016 00:09:54 +0000 (00:09 +0000)]
auto-generate checks
llvm-svn: 276501
Xinliang David Li [Fri, 22 Jul 2016 23:53:00 +0000 (23:53 +0000)]
[Profile] Tighten test with expected profile count
llvm-svn: 276500
Ekaterina Romanova [Fri, 22 Jul 2016 23:49:37 +0000 (23:49 +0000)]
Add doxygen comments to emmintrin.h's intrinsics.
Only around 50% of the intrinsics in this file are documented now. The patches for the rest of the intrisics in this file will be send out later.
The doxygen comments are automatically generated based on Sony's intrinsics docu
ment.
I got an OK from Eric Christopher to commit doxygen comments without prior code
review upstream. This patch was internally reviewed by Paul Robinson.
llvm-svn: 276499
Tom Stellard [Fri, 22 Jul 2016 23:46:40 +0000 (23:46 +0000)]
Revert "[AMDGPU] Emit read-only data to .rodata for hsa"
This reverts commit r276298.
Data stored in .rodata can have a negative offset from .text, but we
don't support negative values in relocations yet.
This caused a regression in one of the amp conformance tests:
5_Data_Cont/5_2_a_v/5_2_3_m/Assignment/Test.02.01
llvm-svn: 276498