platform/upstream/llvm.git
5 years ago[WedAssembly] Add -s and -S alias for --strip-all and --strip-debug
Sam Clegg [Wed, 31 Oct 2018 19:30:43 +0000 (19:30 +0000)]
[WedAssembly] Add -s and -S alias for --strip-all and --strip-debug

llvm-svn: 345767

5 years agoRemoving a reliance on system headers from this test; NFC.
Aaron Ballman [Wed, 31 Oct 2018 19:17:44 +0000 (19:17 +0000)]
Removing a reliance on system headers from this test; NFC.

llvm-svn: 345766

5 years ago[compiler-rt][Fuzzer] Use the new C++ ABI namespace CMake support
Petr Hosek [Wed, 31 Oct 2018 19:15:48 +0000 (19:15 +0000)]
[compiler-rt][Fuzzer] Use the new C++ ABI namespace CMake support

libc++ now supports customizing the ABI namespace directly from the
CMake build so we no longer need to rely on custom CFLAGS.

Differential Revision: https://reviews.llvm.org/D53939

llvm-svn: 345765

5 years agoImplement the readability-const-return-type check.
Aaron Ballman [Wed, 31 Oct 2018 19:11:38 +0000 (19:11 +0000)]
Implement the readability-const-return-type check.

This check flags function top-level const-qualified return types and suggests removing the mostly-superfluous const qualifier where possible.

Patch by Yitzhak Mandelbaum.

llvm-svn: 345764

5 years ago[AMDGPU] Remove FeatureVGPRSpilling
Scott Linder [Wed, 31 Oct 2018 18:54:06 +0000 (18:54 +0000)]
[AMDGPU] Remove FeatureVGPRSpilling

This feature is only relevant to shaders, and is no longer used. When disabled,
lowering of reserved registers for shaders causes a compiler crash.

Remove the feature and add a test for compilation of shaders at OptNone.

Differential Revision: https://reviews.llvm.org/D53829

llvm-svn: 345763

5 years ago[NFC] Replace C++1y and C++1z by C++14 and C++17, respectively
Louis Dionne [Wed, 31 Oct 2018 18:53:31 +0000 (18:53 +0000)]
[NFC] Replace C++1y and C++1z by C++14 and C++17, respectively

llvm-svn: 345762

5 years ago[SelectionDAGISel] Suppress a -Wunused-but-set-variable warning in release builds...
Craig Topper [Wed, 31 Oct 2018 18:46:15 +0000 (18:46 +0000)]
[SelectionDAGISel] Suppress a -Wunused-but-set-variable warning in release builds. NFC

llvm-svn: 345761

5 years ago[ASTImporter][Structural Eq] Check for isBeingDefined
Gabor Marton [Wed, 31 Oct 2018 18:46:13 +0000 (18:46 +0000)]
[ASTImporter][Structural Eq] Check for isBeingDefined

Summary:
If one definition is currently being defined, we do not compare for
equality and we assume that the decls are equal.

Reviewers: a_sidorin

Subscribers: rnkovacs, dkrupp, Szelethus, cfe-commits

Differential Revision: https://reviews.llvm.org/D53697

llvm-svn: 345760

5 years ago[NFC] Mark "Splicing Maps and Sets" as done in LLVM 8.0
Louis Dionne [Wed, 31 Oct 2018 18:33:11 +0000 (18:33 +0000)]
[NFC] Mark "Splicing Maps and Sets" as done in LLVM 8.0

llvm-svn: 345759

5 years agoFix comment typo. NFCI.
Simon Pilgrim [Wed, 31 Oct 2018 18:19:52 +0000 (18:19 +0000)]
Fix comment typo. NFCI.

llvm-svn: 345758

5 years ago[InstCombine] regenerate test checks; NFC
Sanjay Patel [Wed, 31 Oct 2018 18:17:51 +0000 (18:17 +0000)]
[InstCombine] regenerate test checks; NFC

llvm-svn: 345757

5 years ago[SelectionDAG] SelectionDAGLegalize::ExpandBITREVERSE - ensure we use ShiftTy
Simon Pilgrim [Wed, 31 Oct 2018 18:14:14 +0000 (18:14 +0000)]
[SelectionDAG] SelectionDAGLegalize::ExpandBITREVERSE - ensure we use ShiftTy

We should be using the getShiftAmountTy value type for shift amounts.

llvm-svn: 345756

5 years ago[NFC] Fixed -Wsign-compare warning
David Bolvansky [Wed, 31 Oct 2018 18:03:36 +0000 (18:03 +0000)]
[NFC] Fixed -Wsign-compare warning

llvm-svn: 345755

5 years ago[globalisel][irtranslator] Fix test from r345743 on non-asserts builds.
Daniel Sanders [Wed, 31 Oct 2018 17:58:47 +0000 (17:58 +0000)]
[globalisel][irtranslator] Fix test from r345743 on non-asserts builds.

llvm-svn: 345754

5 years ago[clang-format] tweaked another case of lambda formatting
Krasimir Georgiev [Wed, 31 Oct 2018 17:56:57 +0000 (17:56 +0000)]
[clang-format] tweaked another case of lambda formatting

Summary:
This is done in order to improve cases where the lambda's body is moved too far to the right. Consider the following snippet with column limit set to 79:

```
void f() {
  leader::MakeThisCallHere(&leader_service_,
                           cq_.get(),
                           [this, liveness](const leader::ReadRecordReq& req,
                                            std::function<void()> done) {
                             logger_->HandleReadRecord(
                                 req, resp, std::move(done));
                           });

  leader::MakeAnother(&leader_service_,
                      cq_.get(),
                      [this, liveness](const leader::ReadRecordReq& req,
                                       std::function<void()> done) {
                        logger_->HandleReadRecord(
                            req, resp, std::move(done), a);
                      });
}
```

The tool favors extra indentation for the lambda body and so the code incurs extra wrapping and adjacent calls are indented to a different level. I find this behavior annoying and I'd like the tool to favor new lines and, thus, use the extra width.

The fix, reduced, brings the following formatting.

Before:

    function(1,
             [] {
               DoStuff();
               //
             },
             1);

After:

    function(
        1,
        [] {
          DoStuff();
          //
        },
        1);

Refer to the new tests in FormatTest.cpp

Contributed by oleg.smolsky!

Reviewers: djasper, klimek, krasimir

Subscribers: cfe-commits, owenpan

Tags: #clang

Differential Revision: https://reviews.llvm.org/D52676

llvm-svn: 345753

5 years ago[InstCombine] add tests for fcmp with -0.0; NFC
Sanjay Patel [Wed, 31 Oct 2018 17:55:40 +0000 (17:55 +0000)]
[InstCombine] add tests for fcmp with -0.0; NFC

From IEEE754: "Comparisons shall ignore the sign of zero (so +0 = −0)."

llvm-svn: 345752

5 years ago[InstCombine] Combine nested min/max intrinsics with constants
Volkan Keles [Wed, 31 Oct 2018 17:50:52 +0000 (17:50 +0000)]
[InstCombine] Combine nested min/max intrinsics with constants

Reviewers: arsenm, spatel

Reviewed By: spatel

Subscribers: lebedev.ri, wdng, llvm-commits

Differential Revision: https://reviews.llvm.org/D53774

llvm-svn: 345751

5 years ago[llvm-mca] Remove the verb 'assemble' from a few options in help. NFC.
Matt Davis [Wed, 31 Oct 2018 17:47:25 +0000 (17:47 +0000)]
[llvm-mca] Remove the verb 'assemble' from a few options in help. NFC.

* MCA does not assemble anything.
* Ran clang-format.

llvm-svn: 345750

5 years agoTableGen: Fix ASAN error
Nicolai Haehnle [Wed, 31 Oct 2018 17:46:21 +0000 (17:46 +0000)]
TableGen: Fix ASAN error

Summary:
As a bonus, this arguably improves the code by making it simpler.

gcc 8 on Ubuntu 18.10 reports the following:

==39667==ERROR: AddressSanitizer: stack-use-after-scope on address 0x7fffffff8ae0 at pc 0x555555dbfc68 bp 0x7fffffff8760 sp 0x7fffffff8750
WRITE of size 8 at 0x7fffffff8ae0 thread T0
    #0 0x555555dbfc67 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider::_Alloc_hider(char*, std::allocator<char>&&) /usr/include/c++/8/bits/basic_string.h:149
    #1 0x555555dbfc67 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&) /usr/include/c++/8/bits/basic_string.h:542
    #2 0x555555dbfc67 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&) /usr/include/c++/8/bits/basic_string.h:6009
    #3 0x555555dbfc67 in searchableFieldType /home/nha/amd/build/san/llvm-src/utils/TableGen/SearchableTableEmitter.cpp:168
    (...)

Address 0x7fffffff8ae0 is located in stack of thread T0 at offset 864 in frame
    #0 0x555555dbef3f in searchableFieldType /home/nha/amd/build/san/llvm-src/utils/TableGen/SearchableTableEmitter.cpp:148

Reviewers: fhahn, simon_tatham, kparzysz

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D53931

llvm-svn: 345749

5 years agoRe-land r345676 "[Win64] Handle passing i128 by value"
Reid Kleckner [Wed, 31 Oct 2018 17:43:55 +0000 (17:43 +0000)]
Re-land r345676 "[Win64] Handle passing i128 by value"

Fix the unintended switch/case fallthrough to avoid changing long double
behavior.

llvm-svn: 345748

5 years ago[analyzer] Re-add custom OSIterator rule for RetainCountChecker
George Karpenkov [Wed, 31 Oct 2018 17:38:46 +0000 (17:38 +0000)]
[analyzer] Re-add custom OSIterator rule for RetainCountChecker

Turns out the rule is quite ubiquitous.

Revert of https://reviews.llvm.org/D53628

llvm-svn: 345747

5 years ago[analyzer] RetainCountChecker: for now, do not trust the summaries of inlined code
George Karpenkov [Wed, 31 Oct 2018 17:38:29 +0000 (17:38 +0000)]
[analyzer] RetainCountChecker: for now, do not trust the summaries of inlined code

Trusting summaries of inlined code would require a more thorough work,
as the current approach was causing too many false positives, as the new
example in test.  The culprit lies in the fact that we currently escape
all variables written into a field (but not passed off to unknown
functions!), which can result in inconsistent behavior.

rdar://45655344

Differential Revision: https://reviews.llvm.org/D53902

llvm-svn: 345746

5 years ago[analyzer] Enable retain count checking for OSObject by defa
George Karpenkov [Wed, 31 Oct 2018 17:38:12 +0000 (17:38 +0000)]
[analyzer] Enable retain count checking for OSObject by defa

The FP rate seems to be good enough now.

Differential Revision: https://reviews.llvm.org/D53849

llvm-svn: 345745

5 years agoSecond half of C++17's splicing maps and sets
Erik Pilkington [Wed, 31 Oct 2018 17:31:35 +0000 (17:31 +0000)]
Second half of C++17's splicing maps and sets

This commit adds a merge member function to all the map and set containers,
which splices nodes from the source container. This completes support for
P0083r3.

Differential revision: https://reviews.llvm.org/D48896

llvm-svn: 345744

5 years ago[globalisel][irtranslator] Verify that DILocations aren't lost in translation
Daniel Sanders [Wed, 31 Oct 2018 17:31:23 +0000 (17:31 +0000)]
[globalisel][irtranslator] Verify that DILocations aren't lost in translation

Summary:
Also fix a couple bugs where DILocations are lost. EntryBuilder wasn't passing
on debug locations for PHI's, constants, GLOBAL_VALUE, etc.

Reviewers: aprantl, vsk, bogner, aditya_nandakumar, volkan, rtereshin, aemerson

Reviewed By: aemerson

Subscribers: aemerson, rovka, kristof.beyls, javed.absar, llvm-commits

Differential Revision: https://reviews.llvm.org/D53740

llvm-svn: 345743

5 years ago[clang-tidy] add missing '--' in RUN-line, unbreak buildbot
Jonas Toth [Wed, 31 Oct 2018 17:26:10 +0000 (17:26 +0000)]
[clang-tidy] add missing '--' in RUN-line, unbreak buildbot

llvm-svn: 345742

5 years ago[Lex] Make MacroDirective::findDirectiveAtLoc take const SourceManager
Kristof Umann [Wed, 31 Oct 2018 17:19:20 +0000 (17:19 +0000)]
[Lex] Make MacroDirective::findDirectiveAtLoc take const SourceManager

I'm currently working on including macro expansions in the Static Analyzer's
plist output, where I can only access a const SourceManager.

Differential Revision: https://reviews.llvm.org/D53940

llvm-svn: 345741

5 years agoMachineModuleInfo: Initialize DbgInfoAvailable depending on debug_cus existing
Matthias Braun [Wed, 31 Oct 2018 17:18:41 +0000 (17:18 +0000)]
MachineModuleInfo: Initialize DbgInfoAvailable depending on debug_cus existing

Before this patch DbgInfoAvailable was set to true in
DwarfDebug::beginModule() or CodeViewDebug::CodeViewDebug(). This made
MIR testing weird since passes would suddenly stop dealing with debug
info just because we stopped the pipeline before the debug printers.

This patch changes the logic to initialize DbgInfoAvailable based on the
fact that debug_compile_units exist in the llvm Module. The debug
printers may then override it with false in case of debug printing being
disabled.

Differential Revision: https://reviews.llvm.org/D53885

llvm-svn: 345740

5 years ago[clang-tidy] add -fexceptions to failing unit-test, unbreak buildbot
Jonas Toth [Wed, 31 Oct 2018 17:08:09 +0000 (17:08 +0000)]
[clang-tidy] add -fexceptions to failing unit-test, unbreak buildbot

llvm-svn: 345738

5 years ago[clang] try-fix broken documentation builder
Jonas Toth [Wed, 31 Oct 2018 17:00:50 +0000 (17:00 +0000)]
[clang] try-fix broken documentation builder

llvm-svn: 345737

5 years ago[clang-tools-extra] fix broken link in release notes
Jonas Toth [Wed, 31 Oct 2018 16:59:41 +0000 (16:59 +0000)]
[clang-tools-extra] fix broken link in release notes

llvm-svn: 345736

5 years ago[clang-tidy] new check 'readability-isolate-declaration'
Jonas Toth [Wed, 31 Oct 2018 16:50:44 +0000 (16:50 +0000)]
[clang-tidy] new check 'readability-isolate-declaration'

Summary:
This patch introduces a new clang-tidy check that matches on all `declStmt` that declare more then one variable
and transform them into one statement per declaration if possible.

It currently only focusses on variable declarations but should be extended to cover more kinds of declarations in the future.
It is related to https://reviews.llvm.org/D27621 and does use it's extensive test-suite. Thank you to firolino for his work!

Reviewers: rsmith, aaron.ballman, alexfh, hokein, kbobyrev

Reviewed By: aaron.ballman

Subscribers: ZaMaZaN4iK, mgehre, nemanjai, kbarton, lebedev.ri, Eugene.Zelenko, mgorny, xazax.hun, cfe-commits

Tags: #clang-tools-extra

Differential Revision: https://reviews.llvm.org/D51949

llvm-svn: 345735

5 years ago[InstCombine] refactor fabs+fcmp fold; NFC
Sanjay Patel [Wed, 31 Oct 2018 16:34:43 +0000 (16:34 +0000)]
[InstCombine] refactor fabs+fcmp fold; NFC

Also, remove/replace/minimize/enhance the tests for this fold.
The code drops FMF, so it needs more tests and at least 1 fix.

llvm-svn: 345734

5 years ago[LLDB] - Regroup the switch entries in DWARFFormValue::ExtractValue. NFC.
George Rimar [Wed, 31 Oct 2018 16:12:29 +0000 (16:12 +0000)]
[LLDB] - Regroup the switch entries in DWARFFormValue::ExtractValue. NFC.

This is NFC to clean up the `DWARFFormValue::ExtractValue`.
It groups similar `DW_FORM_*` and removes an excessive
assignment of `ref_addr_size` (it was assigned right after in any case).

llvm-svn: 345733

5 years ago[Hexagon] Make sure not to use GP-relative addressing with PIC
Krzysztof Parzyszek [Wed, 31 Oct 2018 15:54:31 +0000 (15:54 +0000)]
[Hexagon] Make sure not to use GP-relative addressing with PIC

Make sure that -relocation-model=pic prevents use of GP-relative
addressing modes.

llvm-svn: 345731

5 years ago[llvm-mca] Remove namespace prefixes made redundant by r345612. NFC
Andrea Di Biagio [Wed, 31 Oct 2018 15:53:28 +0000 (15:53 +0000)]
[llvm-mca] Remove namespace prefixes made redundant by r345612. NFC

llvm-svn: 345730

5 years agoDelete dependency on config.h
Kadir Cetinkaya [Wed, 31 Oct 2018 15:37:09 +0000 (15:37 +0000)]
Delete dependency on config.h

Summary:
Since llvm/Config/config.h is not available on standalone builds,
use __USE_POSIX instead of HAVE_PTHREAD_H and get rid of the include.

Reviewers: sammccall

Reviewed By: sammccall

Subscribers: lebedev.ri, krytarowski, ilya-biryukov, ioeric, jkorous, arphaman, jfb, cfe-commits

Differential Revision: https://reviews.llvm.org/D53935

llvm-svn: 345729

5 years ago[InstSimplify] fold 'fcmp nnan ult X, 0.0' when X is not negative
Sanjay Patel [Wed, 31 Oct 2018 15:35:46 +0000 (15:35 +0000)]
[InstSimplify] fold 'fcmp nnan ult X, 0.0' when X is not negative

This is the inverted case for the transform added with D53874 / rL345725.

llvm-svn: 345728

5 years ago[InstCombine] add assertion that InstSimplify has folded a fabs+fcmp; NFC
Sanjay Patel [Wed, 31 Oct 2018 15:31:45 +0000 (15:31 +0000)]
[InstCombine] add assertion that InstSimplify has folded a fabs+fcmp; NFC

The 'OLT' case was updated at rL266175, so I assume it was just an
oversight that 'UGE' was not included because that patch handled
both predicates in InstSimplify.

llvm-svn: 345727

5 years agoUpdate ioctl(2) operations for NetBSD 8.99.25
Kamil Rytarowski [Wed, 31 Oct 2018 15:04:20 +0000 (15:04 +0000)]
Update ioctl(2) operations for NetBSD 8.99.25

Eliminate dropped operations, add new operations.

Update included headers for newer need.

Add a fallback definition of nvlist_ref_t, becaue this type
is internal to libnpf and the kernel, not exported into public
headers.

llvm-svn: 345726

5 years ago[InstSimplify] fold 'fcmp nnan oge X, 0.0' when X is not negative
Sanjay Patel [Wed, 31 Oct 2018 14:57:23 +0000 (14:57 +0000)]
[InstSimplify] fold 'fcmp nnan oge X, 0.0' when X is not negative

This re-raises some of the open questions about how to apply and use fast-math-flags in IR from PR38086:
https://bugs.llvm.org/show_bug.cgi?id=38086
...but given the current implementation (no FMF on casts), this is likely the only way to predicate the
transform.

This is part of solving PR39475:
https://bugs.llvm.org/show_bug.cgi?id=39475

Differential Revision: https://reviews.llvm.org/D53874

llvm-svn: 345725

5 years ago[analyzer][PlistMacroExpansion] Part 1.: New expand-macros flag
Kristof Umann [Wed, 31 Oct 2018 14:54:27 +0000 (14:54 +0000)]
[analyzer][PlistMacroExpansion] Part 1.: New expand-macros flag

This is the first part of the implementation of the inclusion of macro
expansions into the plist output. It adds a new flag that adds a new
"macro_expansions" entry to each report that has PathDiagnosticPieces that were
expanded from a macro. While there's an entry for each macro expansion, both
the name of the macro and what it expands to is missing, and will be implemented
in followup patches.

Differential Revision: https://reviews.llvm.org/D52742

llvm-svn: 345724

5 years ago[LoopUnroll] allow customization for new-pass-manager version of LoopUnroll
Fedor Sergeev [Wed, 31 Oct 2018 14:33:14 +0000 (14:33 +0000)]
[LoopUnroll] allow customization for new-pass-manager version of LoopUnroll

Unlike its legacy counterpart new pass manager's LoopUnrollPass does
not provide any means to select which flavors of unroll to run
(runtime, peeling, partial), relying on global defaults.

In some cases having ability to run a restricted LoopUnroll that
does more than LoopFullUnroll is needed.

Introduced LoopUnrollOptions to select optional unroll behaviors.
Added 'unroll<peeling>' to PassRegistry mainly for the sake of testing.

Reviewers: chandlerc, tejohnson
Differential Revision: https://reviews.llvm.org/D53440

llvm-svn: 345723

5 years ago[InstSimplify] add tests for fcmp and known positive; NFC
Sanjay Patel [Wed, 31 Oct 2018 14:29:21 +0000 (14:29 +0000)]
[InstSimplify] add tests for fcmp and known positive; NFC

llvm-svn: 345722

5 years ago[DAGCombiner] Fold 0 div/rem X to 0
David Bolvansky [Wed, 31 Oct 2018 14:18:57 +0000 (14:18 +0000)]
[DAGCombiner] Fold 0 div/rem X to 0

Reviewers: RKSimon, spatel, javed.absar, craig.topper, t.p.northover

Reviewed By: RKSimon

Subscribers: craig.topper, llvm-commits

Differential Revision: https://reviews.llvm.org/D52504

llvm-svn: 345721

5 years ago[LLDB] - Removed unused variable. NFC.
George Rimar [Wed, 31 Oct 2018 13:49:31 +0000 (13:49 +0000)]
[LLDB] - Removed unused variable. NFC.

Introduced in r344119.

Thanks to Dávid Bolvanský fo reporting.

llvm-svn: 345720

5 years agoAMDGPU: Rewrite SILowerI1Copies to always stay on SALU
Nicolai Haehnle [Wed, 31 Oct 2018 13:27:08 +0000 (13:27 +0000)]
AMDGPU: Rewrite SILowerI1Copies to always stay on SALU

Summary:
Instead of writing boolean values temporarily into 32-bit VGPRs
if they are involved in PHIs or are observed from outside a loop,
we use bitwise masking operations to combine lane masks in a way
that is consistent with wave control flow.

Move SIFixSGPRCopies to before this pass, since that pass
incorrectly attempts to move SGPR phis to VGPRs.

This should recover most of the code quality that was lost with
the bug fix in "AMDGPU: Remove PHI loop condition optimization".

There are still some relevant cases where code quality could be
improved, in particular:

- We often introduce redundant masks with EXEC. Ideally, we'd
  have a generic computeKnownBits-like analysis to determine
  whether masks are already masked by EXEC, so we can avoid this
  masking both here and when lowering uniform control flow.

- The criterion we use to determine whether a def is observed
  from outside a loop is conservative: it doesn't check whether
  (loop) branch conditions are uniform.

Change-Id: Ibabdb373a7510e426b90deef00f5e16c5d56e64b

Reviewers: arsenm, rampitec, tpr

Subscribers: kzhuravl, jvesely, wdng, mgorny, yaxunl, dstuttard, t-tye, eraman, llvm-commits

Differential Revision: https://reviews.llvm.org/D53496

llvm-svn: 345719

5 years agoAMDGPU: Remove PHI loop condition optimization
Nicolai Haehnle [Wed, 31 Oct 2018 13:26:48 +0000 (13:26 +0000)]
AMDGPU: Remove PHI loop condition optimization

Summary:
The optimization to early break out of loops if all threads are dead was
never fully implemented.

But the PHI node analyzing is actually causing a number of problems, so
remove all the extra code for it.

(This does actually regress code quality in a few places because it
 ends up relying more heavily on phi's of i1, which we don't do a
 great job with. However, since it fixes real bugs in the wild, we
 should take this change. I have some prototype changes to improve
 i1 lowering in general -- not just for control flow -- which should
 help recover the code quality, I just need to make those changes
 fit for general consumption. -- Nicolai)

Change-Id: I6fc6c6c8961857ac6009fcfb9f7e5e48dc23fbb1
Patch-by: Christian König <christian.koenig@amd.com>
Reviewers: arsenm, rampitec, tpr

Subscribers: kzhuravl, jvesely, wdng, yaxunl, dstuttard, t-tye, llvm-commits

Differential Revision: https://reviews.llvm.org/D53359

llvm-svn: 345718

5 years ago[InstSimplify] fold icmp based on range of abs/nabs
Sanjay Patel [Wed, 31 Oct 2018 13:25:10 +0000 (13:25 +0000)]
[InstSimplify] fold icmp based on range of abs/nabs

This is a fix for PR39475:
https://bugs.llvm.org/show_bug.cgi?id=39475

We managed to get some of these patterns using computeKnownBits in D47041, but that
can't be used for nabs(). Instead, put in some range-based logic, so we can fold
both abs/nabs with icmp with a constant value.

Alive proofs:
https://rise4fun.com/Alive/21r

Name: abs_nsw_is_positive
  %cmp = icmp slt i32 %x, 0
  %negx = sub nsw i32 0, %x
  %abs = select i1 %cmp, i32 %negx, i32 %x
  %r = icmp sgt i32 %abs, -1
    =>
  %r = i1 true

Name: abs_nsw_is_not_negative
  %cmp = icmp slt i32 %x, 0
  %negx = sub nsw i32 0, %x
  %abs = select i1 %cmp, i32 %negx, i32 %x
  %r = icmp slt i32 %abs, 0
    =>
  %r = i1 false

Name: nabs_is_negative_or_0
  %cmp = icmp slt i32 %x, 0
  %negx = sub i32 0, %x
  %nabs = select i1 %cmp, i32 %x, i32 %negx
  %r = icmp slt i32 %nabs, 1
    =>
  %r = i1 true

Name: nabs_is_not_over_0
  %cmp = icmp slt i32 %x, 0
  %negx = sub i32 0, %x
  %nabs = select i1 %cmp, i32 %x, i32 %negx
  %r = icmp sgt i32 %nabs, 0
    =>
  %r = i1 false

Differential Revision: https://reviews.llvm.org/D53844

llvm-svn: 345717

5 years ago[clang-tidy] Remove false decoupling in ClangTidyContext. NFC
Sam McCall [Wed, 31 Oct 2018 13:08:19 +0000 (13:08 +0000)]
[clang-tidy] Remove false decoupling in ClangTidyContext. NFC

These getters/setters don't encapsulate any behavior, and can only be
called by friends.

llvm-svn: 345716

5 years agoUpdate generate_netbsd_ioctls.awk for NetBSD 8.99.25
Kamil Rytarowski [Wed, 31 Oct 2018 12:52:08 +0000 (12:52 +0000)]
Update generate_netbsd_ioctls.awk for NetBSD 8.99.25

Add dynamic detection of header files in /usr/include.
Handle "nvlist_ref_t" needed by npf(4) ioctl(2) operations.

llvm-svn: 345715

5 years ago[tblgen][PredicateExpander] Add the ability to describe more complex constraints...
Andrea Di Biagio [Wed, 31 Oct 2018 12:28:05 +0000 (12:28 +0000)]
[tblgen][PredicateExpander] Add the ability to describe more complex constraints on instruction operands.

Before this patch, class PredicateExpander only knew how to expand simple
predicates that performed checks on instruction operands.
In particular, the new scheduling predicate syntax was not rich enough to
express checks like this one:

  Foo(MI->getOperand(0).getImm()) == ExpectedVal;

Here, the immediate operand value at index zero is passed in input to function
Foo, and ExpectedVal is compared against the value returned by function Foo.

While this predicate pattern doesn't show up in any X86 model, it shows up in
other upstream targets. So, being able to support those predicates is
fundamental if we want to be able to modernize all the scheduling models
upstream.

With this patch, we allow users to specify if a register/immediate operand value
needs to be passed in input to a function as part of the predicate check. Now,
register/immediate operand checks all derive from base class CheckOperandBase.

This patch also changes where TIIPredicate definitions are expanded by the
instructon info emitter. Before, definitions were expanded in class
XXXGenInstrInfo (where XXX is a target name).
With the introduction of this new syntax, we may want to have TIIPredicates
expanded directly in XXXInstrInfo. That is because functions used by the new
operand predicates may only exist in the derived class (i.e. XXXInstrInfo).

This patch is a non functional change for the existing scheduling models.
In future, we will be able to use this richer syntax to better describe complex
scheduling predicates, and expose them to llvm-mca.

Differential Revision: https://reviews.llvm.org/D53880

llvm-svn: 345714

5 years ago[NFC] Add tests for loop-simplifycfg for further development
Max Kazantsev [Wed, 31 Oct 2018 11:28:23 +0000 (11:28 +0000)]
[NFC] Add tests for loop-simplifycfg for further development

llvm-svn: 345713

5 years ago[ADT] Remove illegal comparison of singular iterators from SmallSetTest
Florian Hahn [Wed, 31 Oct 2018 11:00:48 +0000 (11:00 +0000)]
[ADT] Remove illegal comparison of singular iterators from SmallSetTest

This removes the assertion that a copy of a moved-from SmallSetIterator
equals the original, which is illegal due to SmallSetIterator including
an instance of a standard `std::set` iterator.

C++ [iterator.requirements.general] states that comparing singular
iterators has undefined result:

> Iterators can also have singular values that are not associated with
> any sequence. [...] Results of most expressions are undefined for
> singular values; the only exceptions are destroying an iterator that
> holds a singular value, the assignment of a non-singular value to an
> iterator that holds a singular value, and, for iterators that satisfy
> the Cpp17DefaultConstructible requirements, using a value-initialized
> iterator as the source of a copy or move operation.

This assertion triggers the following error in the GNU C++ Library in
debug mode under EXPENSIVE_CHECKS:

  /usr/include/c++/8.2.1/debug/safe_iterator.h:518:
  Error: attempt to compare a singular iterator to a singular iterator.

  Objects involved in the operation:
      iterator "lhs" @ 0x0x7fff86420670 {
        state = singular;
      }
      iterator "rhs" @ 0x0x7fff86420640 {
        state = singular;
      }

Patch by Eugene Sharygin.

Reviewers: fhahn, dblaikie, chandlerc

Reviewed By: fhahn, dblaikie

Differential Revision: https://reviews.llvm.org/D53793

llvm-svn: 345712

5 years ago[lldb] Fix race condition in framework installation
Shoaib Meenai [Wed, 31 Oct 2018 10:41:12 +0000 (10:41 +0000)]
[lldb] Fix race condition in framework installation

We need the install-liblldb-stripped target to depend on the
lldb-framework target in order for the installation to be guaranteed to
behave correctly, otherwise it's possible for the lldb-framework and
install-liblldb-stripped targets to run in parallel, resulting in
temporary or partially processed files being copied into the framework.
install-liblldb already depends on lldb-framework for this reason.

Differential Revision: https://reviews.llvm.org/D53917

llvm-svn: 345711

5 years ago[AMDGPU] support image load/store a16
Neil Henning [Wed, 31 Oct 2018 10:34:48 +0000 (10:34 +0000)]
[AMDGPU] support image load/store a16

Our a16 support was only enabled for sample/gather and buffer
load/store, but not for image load/store operations (which take an i16
as the pixel index rather than a half).

Fix our isel lowering and add test cases to prove it out.

Differential Revision: https://reviews.llvm.org/D53750

llvm-svn: 345710

5 years agoFollow-up to r345699: Call CheckStaticLocalForDllExport later for templates
Hans Wennborg [Wed, 31 Oct 2018 10:34:46 +0000 (10:34 +0000)]
Follow-up to r345699: Call CheckStaticLocalForDllExport later for templates

Calling it too early might cause dllimport to get inherited onto the
VarDecl before the initializer got attached. See the test case for an
example where this broke things.

llvm-svn: 345709

5 years ago[IndVars] Strengthen restricton in rewriteLoopExitValues
Max Kazantsev [Wed, 31 Oct 2018 10:30:50 +0000 (10:30 +0000)]
[IndVars] Strengthen restricton in rewriteLoopExitValues

For some unclear reason rewriteLoopExitValues considers recalculation
after the loop profitable if it has some "soft uses" outside the loop (i.e. any
use other than call and return), even if we have proved that it has a user inside
the loop which we think will not be optimized away.

There is no existing unit test that would explain this. This patch provides an
example when rematerialisation of exit value is not profitable but it passes
this check due to presence of a "soft use" outside the loop.

It makes no sense to recalculate value on exit if we are going to compute it
due to some irremovable within the loop. This patch disallows applying this
transform in the described situation.

Differential Revision: https://reviews.llvm.org/D51581
Reviewed By: etherzhhb

llvm-svn: 345708

5 years agoDiable test suppressions-library for NetBSD/i386
Kamil Rytarowski [Wed, 31 Oct 2018 10:16:54 +0000 (10:16 +0000)]
Diable test suppressions-library for NetBSD/i386

This is a part of the ASan test-suite.

llvm-svn: 345707

5 years ago[LLDB] - Add support for DW_FORM_addrx[1-4]? forms.
George Rimar [Wed, 31 Oct 2018 10:14:03 +0000 (10:14 +0000)]
[LLDB] - Add support for DW_FORM_addrx[1-4]? forms.

This adds the support for DW_FORM_addrx, DW_FORM_addrx1,
DW_FORM_addrx2, DW_FORM_addrx3, DW_FORM_addrx4 forms.

Differential revision: https://reviews.llvm.org/D53813

llvm-svn: 345706

5 years ago[LV] Support vectorization of interleave-groups that require an epilog under
Dorit Nuzman [Wed, 31 Oct 2018 09:57:56 +0000 (09:57 +0000)]
[LV] Support vectorization of interleave-groups that require an epilog under
optsize using masked wide loads

Under Opt for Size, the vectorizer does not vectorize interleave-groups that
have gaps at the end of the group (such as a loop that reads only the even
elements: a[2*i]) because that implies that we'll require a scalar epilogue
(which is not allowed under Opt for Size). This patch extends the support for
masked-interleave-groups (introduced by D53011 for conditional accesses) to
also cover the case of gaps in a group of loads; Targets that enable the
masked-interleave-group feature don't have to invalidate interleave-groups of
loads with gaps; they could now use masked wide-loads and shuffles (if that's
what the cost model selects).

Reviewers: Ayal, hsaito, dcaballe, fhahn

Reviewed By: Ayal

Differential Revision: https://reviews.llvm.org/D53668

llvm-svn: 345705

5 years ago[llvm-objdump] Mark syms/t flags as NotHidden. NFC.
Kristina Brooks [Wed, 31 Oct 2018 09:35:25 +0000 (09:35 +0000)]
[llvm-objdump] Mark syms/t flags as NotHidden. NFC.

Slight improvement to help output of llvm-objdump that exposes the
shorter -t flag for -syms instead of it being hidden away.

llvm-svn: 345704

5 years ago[llvm-objdump] Add --reloc alias for -r (PR39407)
Kristina Brooks [Wed, 31 Oct 2018 09:34:08 +0000 (09:34 +0000)]
[llvm-objdump] Add --reloc alias for -r (PR39407)

This addresses PR39407 (https://bugs.llvm.org/show_bug.cgi?id=39407)
improving compatibility with GNU binutils counterparts.

Reviewed By: kristina

Patch by Higuoxing (Xing).

Differential Revision: https://reviews.llvm.org/D53804

llvm-svn: 345703

5 years ago[MSan] another take at instrumenting inline assembly - now with calls
Alexander Potapenko [Wed, 31 Oct 2018 09:32:47 +0000 (09:32 +0000)]
[MSan] another take at instrumenting inline assembly - now with calls

Turns out it's not always possible to figure out whether an asm()
statement argument points to a valid memory region.
One example would be per-CPU objects in the Linux kernel, for which the
addresses are calculated using the FS register and a small offset in the
.data..percpu section.
To avoid pulling all sorts of checks into the instrumentation, we replace
actual checking/unpoisoning code with calls to
msan_instrument_asm_load(ptr, size) and
msan_instrument_asm_store(ptr, size) functions in the runtime.

This patch doesn't implement the runtime hooks in compiler-rt, as there's
been no demand in assembly instrumentation for userspace apps so far.

llvm-svn: 345702

5 years ago[ARM64] [Windows] Exception handling support in frame lowering
Sanjin Sijaric [Wed, 31 Oct 2018 09:27:01 +0000 (09:27 +0000)]
[ARM64] [Windows] Exception handling support in frame lowering

Emit pseudo instructions indicating unwind codes corresponding to each
instruction inside the prologue/epilogue.  These are used by the MCLayer to
populate the .xdata section.

Differential Revision: https://reviews.llvm.org/D50288

llvm-svn: 345701

5 years ago[clangd] fix non linux build
David Carlier [Wed, 31 Oct 2018 09:04:15 +0000 (09:04 +0000)]
[clangd] fix non linux build

There is no SCHED_IDLE semantic equivalent in BSD systems.

Reviewers: kadircet, sammccall

Revieweed By: sammccall

Differential Revision: https://reviews.llvm.org/D53922

llvm-svn: 345700

5 years ago[clang-cl] Inherit dllexport to static locals also in template instantiations (PR39496)
Hans Wennborg [Wed, 31 Oct 2018 08:38:48 +0000 (08:38 +0000)]
[clang-cl] Inherit dllexport to static locals also in template instantiations (PR39496)

In the course of D51340, @takuto.ikuta discovered that Clang fails to put
dllexport/import attributes on static locals during template instantiation.

For regular functions, this happens in Sema::FinalizeDeclaration(), however for
template instantiations we need to do something in or around
TemplateDeclInstantiator::VisitVarDecl(). This patch does that, and extracts
the code to a utility function.

Differential Revision: https://reviews.llvm.org/D53870

llvm-svn: 345699

5 years ago[AArch64] Mark condition flags and x16/x17 as clobbered when calling __chkstk
Martin Storsjo [Wed, 31 Oct 2018 08:14:09 +0000 (08:14 +0000)]
[AArch64] Mark condition flags and x16/x17 as clobbered when calling __chkstk

This is similar to SVN r311061 for ARM.

Differential Revision: https://reviews.llvm.org/D53878

llvm-svn: 345698

5 years ago[llvm-objdump] support '--syms' as an alias of -t
Kristina Brooks [Wed, 31 Oct 2018 05:45:01 +0000 (05:45 +0000)]
[llvm-objdump] support '--syms' as an alias of -t

This adds support for '--syms' as an alias of '-t' for llvm-objdump,
fixing PR39406 (https://bugs.llvm.org/show_bug.cgi?id=39406).

Patch by Higuoxing (Xing).

Differential Revision: https://reviews.llvm.org/D53803

llvm-svn: 345697

5 years ago[ORC] Fix hex printing of uint64_t values.
Lang Hames [Wed, 31 Oct 2018 05:16:14 +0000 (05:16 +0000)]
[ORC] Fix hex printing of uint64_t values.

A plain "%x" format string will drop the high 32-bits. Use the PRIx64 macro
instead.

llvm-svn: 345696

5 years agoChange "struct" to "class" to avoid warnings
Bill Wendling [Wed, 31 Oct 2018 04:58:34 +0000 (04:58 +0000)]
Change "struct" to "class" to avoid warnings

llvm-svn: 345695

5 years agoFixup the Python-less build of ScriptedRecognizedStackFrame
Kuba Mracek [Wed, 31 Oct 2018 04:43:09 +0000 (04:43 +0000)]
Fixup the Python-less build of ScriptedRecognizedStackFrame

llvm-svn: 345694

5 years ago[lldb] Introduce StackFrameRecognizer [take 3]
Kuba Mracek [Wed, 31 Oct 2018 04:00:22 +0000 (04:00 +0000)]
[lldb] Introduce StackFrameRecognizer [take 3]

This patch introduces a concept of "frame recognizer" and "recognized frame". This should be an extensible mechanism that retrieves information about special frames based on ABI, arguments or other special properties of that frame, even without source code. A few examples where that could be useful could be 1) objc_exception_throw, where we'd like to get the current exception, 2) terminate_with_reason and extracting the current terminate string, 3) recognizing Objective-C frames and automatically extracting the receiver+selector, or perhaps all arguments (based on selector).

Differential Revision: https://reviews.llvm.org/D44603

llvm-svn: 345693

5 years agoCreate ConstantExpr class
Bill Wendling [Wed, 31 Oct 2018 03:48:47 +0000 (03:48 +0000)]
Create ConstantExpr class

A ConstantExpr class represents a full expression that's in a context where a
constant expression is required. This class reflects the path the evaluator
took to reach the expression rather than the syntactic context in which the
expression occurs.

In the future, the class will be expanded to cache the result of the evaluated
expression so that it's not needlessly re-evaluated

Reviewed By: rsmith

Differential Revision: https://reviews.llvm.org/D53475

llvm-svn: 345692

5 years agoRevert r345676 due to test failure.
Richard Trieu [Wed, 31 Oct 2018 02:10:51 +0000 (02:10 +0000)]
Revert r345676 due to test failure.

This was causing CodeGen/mingw-long-double.c to start failing.

llvm-svn: 345691

5 years ago2nd attempt to fix ambiguities because of ADL
Matthias Braun [Wed, 31 Oct 2018 01:58:00 +0000 (01:58 +0000)]
2nd attempt to fix ambiguities because of ADL

llvm-svn: 345690

5 years agoTry to fix ambiguities with C++17 headers in unittest
Matthias Braun [Wed, 31 Oct 2018 01:30:41 +0000 (01:30 +0000)]
Try to fix ambiguities with C++17 headers in unittest

llvm-svn: 345689

5 years agoRevert r345686 due to build failures
Kuba Mracek [Wed, 31 Oct 2018 01:22:48 +0000 (01:22 +0000)]
Revert r345686 due to build failures

llvm-svn: 345688

5 years ago[DWARF] Revert r345546: Refactor range list extraction and dumping
Wolfgang Pieb [Wed, 31 Oct 2018 01:12:58 +0000 (01:12 +0000)]
[DWARF] Revert r345546: Refactor range list extraction and dumping

This patch caused some internal tests to break which are being investigated.

llvm-svn: 345687

5 years ago[lldb] Introduce StackFrameRecognizer [take 2]
Kuba Mracek [Wed, 31 Oct 2018 00:36:20 +0000 (00:36 +0000)]
[lldb] Introduce StackFrameRecognizer [take 2]

This patch introduces a concept of "frame recognizer" and "recognized frame". This should be an extensible mechanism that retrieves information about special frames based on ABI, arguments or other special properties of that frame, even without source code. A few examples where that could be useful could be 1) objc_exception_throw, where we'd like to get the current exception, 2) terminate_with_reason and extracting the current terminate string, 3) recognizing Objective-C frames and automatically extracting the receiver+selector, or perhaps all arguments (based on selector).

Differential Revision: https://reviews.llvm.org/D44603

llvm-svn: 345686

5 years ago[asan] Remove stale -fno-exceptions flag in sanitizer_common as well
Reid Kleckner [Wed, 31 Oct 2018 00:35:46 +0000 (00:35 +0000)]
[asan] Remove stale -fno-exceptions flag in sanitizer_common as well

llvm-svn: 345685

5 years ago[llvm-objcopy] Delete a redundant override whose base is empty
Fangrui Song [Wed, 31 Oct 2018 00:31:07 +0000 (00:31 +0000)]
[llvm-objcopy] Delete a redundant override whose base is empty

llvm-svn: 345684

5 years agoUse llvm::any_of instead std::any_of. NFC
Fangrui Song [Wed, 31 Oct 2018 00:31:06 +0000 (00:31 +0000)]
Use llvm::any_of instead std::any_of. NFC

llvm-svn: 345683

5 years agoUse the container form llvm::sort(C)
Fangrui Song [Wed, 31 Oct 2018 00:31:06 +0000 (00:31 +0000)]
Use the container form llvm::sort(C)

llvm-svn: 345682

5 years agoDon't duplicate function/class name at the beginning of the comment. NFC
Fangrui Song [Wed, 31 Oct 2018 00:31:02 +0000 (00:31 +0000)]
Don't duplicate function/class name at the beginning of the comment. NFC

llvm-svn: 345681

5 years agoRevert r345678 (build failure on Linux machines).
Kuba Mracek [Wed, 31 Oct 2018 00:29:17 +0000 (00:29 +0000)]
Revert r345678 (build failure on Linux machines).

llvm-svn: 345680

5 years agoADT/STLExtras: Introduce llvm::empty; NFC
Matthias Braun [Wed, 31 Oct 2018 00:23:23 +0000 (00:23 +0000)]
ADT/STLExtras: Introduce llvm::empty; NFC

This is modeled after C++17 std::empty().

Differential Revision: https://reviews.llvm.org/D53909

llvm-svn: 345679

5 years ago[lldb] Introduce StackFrameRecognizer
Kuba Mracek [Wed, 31 Oct 2018 00:21:03 +0000 (00:21 +0000)]
[lldb] Introduce StackFrameRecognizer

This patch introduces a concept of "frame recognizer" and "recognized frame". This should be an extensible mechanism that retrieves information about special frames based on ABI, arguments or other special properties of that frame, even without source code. A few examples where that could be useful could be 1) objc_exception_throw, where we'd like to get the current exception, 2) terminate_with_reason and extracting the current terminate string, 3) recognizing Objective-C frames and automatically extracting the receiver+selector, or perhaps all arguments (based on selector).

Differential Revision: https://reviews.llvm.org/D44603

llvm-svn: 345678

5 years ago[asan] Remove flags for clang-cl before it supported EH
Reid Kleckner [Wed, 31 Oct 2018 00:20:41 +0000 (00:20 +0000)]
[asan] Remove flags for clang-cl before it supported EH

Also remove -Wno-undefined-inline, which needed to work around PR19898,
which was fixed.

llvm-svn: 345677

5 years ago[Win64] Handle passing i128 by value
Reid Kleckner [Tue, 30 Oct 2018 23:58:41 +0000 (23:58 +0000)]
[Win64] Handle passing i128 by value

For arguments, pass it indirectly, since the ABI doc says pretty clearly
that arguments larger than 8 bytes are passed indirectly. This makes
va_list handling easier, anyway.

When returning, GCC returns in XMM0, and we match them.

Fixes PR39492.

llvm-svn: 345676

5 years agoDWARFVerifier: make the verifier more comprehensive for objects
Saleem Abdulrasool [Tue, 30 Oct 2018 23:45:27 +0000 (23:45 +0000)]
DWARFVerifier: make the verifier more comprehensive for objects

Make the code do what was mentioned in the comment: only skip the CU types.
This enables the lexical blocks to be verified as well.

llvm-svn: 345675

5 years agoMachineOperand/MIParser: Do not print debug-use flag, infer it
Matthias Braun [Tue, 30 Oct 2018 23:28:27 +0000 (23:28 +0000)]
MachineOperand/MIParser: Do not print debug-use flag, infer it

The debug-use flag must be set exactly for uses on DBG_VALUEs.  This is
so obvious that it can be trivially inferred while parsing. This will
reduce noise when printing while omitting an information that has little
value to the user.

The parser will keep recognizing the flag for compatibility with old
`.mir` files.

Differential Revision: https://reviews.llvm.org/D53903

llvm-svn: 345671

5 years agoCorrect ABI list change wrongly advertised as being in the 7.0 release
Louis Dionne [Tue, 30 Oct 2018 23:24:02 +0000 (23:24 +0000)]
Correct ABI list change wrongly advertised as being in the 7.0 release

llvm-svn: 345670

5 years agoSilence unused variable warnings. NFC
Richard Trieu [Tue, 30 Oct 2018 23:01:15 +0000 (23:01 +0000)]
Silence unused variable warnings.  NFC

llvm-svn: 345669

5 years ago[testsuite] Skip an already failing test on MacOS.
Davide Italiano [Tue, 30 Oct 2018 22:49:22 +0000 (22:49 +0000)]
[testsuite] Skip an already failing test on MacOS.

Due to some libcxx changes to inlining, this now also crashes,
so it gets reported as "failure" by the bot. This commit doesn't
really change the status quo, just placates the bots.

llvm-svn: 345668

5 years agoRevert "Build with -fvisibility=hidden"
Eric Fiselier [Tue, 30 Oct 2018 22:23:01 +0000 (22:23 +0000)]
Revert "Build with -fvisibility=hidden"

I messed it up somewhere and now the tests aren't linking.
Reverting while I investigate.

llvm-svn: 345667

5 years agoDisable BufferOverflowAfterManyFrees for NetBSD
Kamil Rytarowski [Tue, 30 Oct 2018 22:08:47 +0000 (22:08 +0000)]
Disable BufferOverflowAfterManyFrees for NetBSD

This test hangs in the i386 mode.

llvm-svn: 345666

5 years ago[ARM][NFC] Make tests immune to better div optimizations
David Bolvansky [Tue, 30 Oct 2018 22:08:13 +0000 (22:08 +0000)]
[ARM][NFC] Make tests immune to better div optimizations

Summary: Related to D52504

Reviewers: spatel

Reviewed By: spatel

Subscribers: javed.absar, kristof.beyls, chrib, llvm-commits

Differential Revision: https://reviews.llvm.org/D53901

llvm-svn: 345665

5 years agoBuild with -fvisibility=hidden
Eric Fiselier [Tue, 30 Oct 2018 22:07:52 +0000 (22:07 +0000)]
Build with -fvisibility=hidden

Summary:
This change changes the build to use -fvisibility=hidden

The exports this patch removes are symbols that should have never been exported
by the dylib in the first place, and should all be symbols which the linker
won't de-duplicate across SO boundaries, making them safe to remove.

After this change, we should be able to apply `_LIBCPP_HIDDEN` to the versioning namespace without changing the export lists.

Reviewers: ldionne, mclow.lists

Reviewed By: ldionne

Subscribers: smeenai, mgorny, libcxx-commits

Differential Revision: https://reviews.llvm.org/D53868

llvm-svn: 345664

5 years agoMark breaking asan tests on NetBSD
Kamil Rytarowski [Tue, 30 Oct 2018 22:05:49 +0000 (22:05 +0000)]
Mark breaking asan tests on NetBSD

Failing ones:
 - coverage-reset
 - coverage
 - dlclose-test
 - interception-in-shared-lib-test
 - stack-use-after-return
 - tsd_dtor_leak

llvm-svn: 345663