platform/upstream/llvm.git
4 years ago[AggressiveInstCombine] Add support for select instruction.
Ayman Musa [Tue, 28 Jan 2020 13:17:15 +0000 (15:17 +0200)]
[AggressiveInstCombine] Add support for select instruction.

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

4 years ago[TargetLowering] Add NegatibleCost enum for isNegatibleForFree return codes
Simon Pilgrim [Wed, 12 Feb 2020 11:42:25 +0000 (11:42 +0000)]
[TargetLowering] Add NegatibleCost enum for isNegatibleForFree return codes

The isNegatibleForFree/getNegatedExpression methods currently rely on a raw char value to indicate whether a negation is beneficial or not.

This patch replaces the char return value with an NegatibleCost enum to more clearly demonstrate what is implied.

It also renames isNegatibleForFree to getNegatibleCost to more accurately reflect whats going on.

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

4 years ago[analyzer]StreamChecker refactoring (NFC).
Balázs Kéri [Wed, 12 Feb 2020 10:26:38 +0000 (11:26 +0100)]
[analyzer]StreamChecker refactoring (NFC).

Reviewers: Szelethus

Reviewed By: Szelethus

Subscribers: xazax.hun, baloghadamsoftware, szepet, a.sidorin, mikhail.ramalho, donat.nagy, Charusso, dkrupp, Szelethus, gamesh411, cfe-commits

Tags: #clang

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

4 years ago[lldb/DWARF] Use DWARFDebugInfoEntry * in ElaboratingDIEIterator
Pavel Labath [Wed, 12 Feb 2020 11:47:43 +0000 (12:47 +0100)]
[lldb/DWARF] Use DWARFDebugInfoEntry * in ElaboratingDIEIterator

This is simpler, faster, and sufficient to uniquely idenify a DIE.

4 years agoRevert "[DebugInfo] Prevent explosion of debug intrinsics during jump threading"
stozer [Wed, 12 Feb 2020 11:47:01 +0000 (11:47 +0000)]
Revert "[DebugInfo] Prevent explosion of debug intrinsics during jump threading"

This reverts commit fe6f6cd6b8e647c5b4ac82f4fcd56c057c2ef8ce.

Found test failure on several buildbots.

4 years ago[NFC][AggressiveInstCombine] Remove redundant std::max.
Ayman Musa [Wed, 12 Feb 2020 11:40:40 +0000 (13:40 +0200)]
[NFC][AggressiveInstCombine] Remove redundant std::max.

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

4 years ago[LLDB] Fix GCC warnings about extra semicolons. NFC.
Martin Storsjö [Wed, 12 Feb 2020 09:22:26 +0000 (11:22 +0200)]
[LLDB] Fix GCC warnings about extra semicolons. NFC.

4 years ago[DebugInfo] Prevent explosion of debug intrinsics during jump threading
stozer [Mon, 27 Jan 2020 16:05:34 +0000 (16:05 +0000)]
[DebugInfo] Prevent explosion of debug intrinsics during jump threading

This patch is a fix following the revert of 72ce759
(https://reviews.llvm.org/rG72ce759928e6dfee6a9efa310b966c19722352ba)
and fixes the failure that it caused.

The above patch failed on the Thread Sanitizer buildbot with an out of
memory error. After an investigation, the cause was identified as an
explosion in debug intrinsics while running the Jump Threading pass on
ModuleMap.ll. The above patched prevented debug intrinsics from being
dropped when their Basic Block was deleted due to being "empty". In this
case, one of the functions in ModuleMap.ll had (after many optimization
passes) a very large number of debug intrinsics representing a set of
repeatedly inlined variables. Previously the vast majority of these were
silently dropped during Jump Threading when their blocks were deleted,
but as of the above patch they survived for longer, causing a large
increase in the number of debug intrinsics. These intrinsics were then
repeatedly cloned by the Jump Threading pass as edges were threaded,
multiplying the intrinsic count further. The memory consumed by this
process spiralled out of control, crashing the buildbot that uses TSan
(which has an estimated 5-10x memory overhead compared to non-sanitized
builds).

This patch adds RemoveRedundantDbgInstrs to the Jump Threading pass, in
order to reduce the number of debug intrinsics down to a manageable
amount in cases where many intrinsics for the same variable end up
bunched together contiguously, as in this case.

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

4 years ago[ConstantFolding] Fold calls to FP remainder function
Ehud Katz [Wed, 12 Feb 2020 11:14:09 +0000 (13:14 +0200)]
[ConstantFolding] Fold calls to FP remainder function

With the fixed implementation of the "remainder" operation in
rG9d0956ebd471, we can now add support to folding calls to it.

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

4 years ago[AMDGPU] Add one more pass to LLVMInitializeAMDGPUTarget
Jay Foad [Wed, 12 Feb 2020 11:15:56 +0000 (11:15 +0000)]
[AMDGPU] Add one more pass to LLVMInitializeAMDGPUTarget

4 years ago[DebugInfo][test][NFC] Remove case numbers
James Henderson [Tue, 11 Feb 2020 13:33:29 +0000 (13:33 +0000)]
[DebugInfo][test][NFC] Remove case numbers

This reduces the noise caused by adding cases earlier in the sequence.

Reviewed by: dblaikie

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

4 years agoRevert "[DebugInfo] Enable the debug entry values feature by default"
Djordje Todorovic [Wed, 12 Feb 2020 10:54:29 +0000 (11:54 +0100)]
Revert "[DebugInfo] Enable the debug entry values feature by default"

This reverts commit rG9f6ff07f8a39.

Found a test failure on clang-with-thin-lto-ubuntu buildbot.

4 years ago[llvm-objdump] Add column headers for relocation printing
Liad Mordekoviz [Tue, 11 Feb 2020 11:10:57 +0000 (11:10 +0000)]
[llvm-objdump] Add column headers for relocation printing

This allows us better readability and compatibility with what GNU
objdump prints.

Fixes https://bugs.llvm.org/show_bug.cgi?id=43941

Reviewed by: jhenderson, MaskRay

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

4 years ago[ARM] MVE vector reduce add tests. NFC
David Green [Tue, 11 Feb 2020 12:17:03 +0000 (12:17 +0000)]
[ARM] MVE vector reduce add tests. NFC

4 years ago[llvm-objcopy] Fix pipeline syntax
Kadir Cetinkaya [Wed, 12 Feb 2020 10:34:40 +0000 (11:34 +0100)]
[llvm-objcopy] Fix pipeline syntax

4 years ago[lldb] Pass a valid SourceLocation to Sema::RequireCompleteType in ASTResultSynthesizer
Raphael Isemann [Mon, 10 Feb 2020 07:13:09 +0000 (08:13 +0100)]
[lldb] Pass a valid SourceLocation to Sema::RequireCompleteType in ASTResultSynthesizer

Sema::RequireCompleteTypeImpl is supposed to have an assert that checks that the
SourceLocation that is passed in is always valid. It's currently commented out, but
as soon as this assert goes active, nearly every LLDB expression will start crashing as
we always pass in an invalid SourceLocation from the ASTResultSynthesizer.

This patch just passes in the valid SourceLocation of the expression (which is
the SourceLocation where the complete type is required) to prevent that from happening.

4 years ago[clang] Add -fignore-exceptions
jasonliu [Tue, 11 Feb 2020 09:52:56 +0000 (09:52 +0000)]
[clang] Add -fignore-exceptions

Summary:

This is trying to implement the functionality proposed in:
http://lists.llvm.org/pipermail/cfe-dev/2017-April/053417.html
An exception can throw, but no cleanup is going to happen.
A module compiled with exceptions on, can catch the exception throws
from module compiled with -fignore-exceptions.

The use cases for enabling this option are:
1. Performance analysis of EH instrumentation overhead
2. The ability to QA non EH functionality when EH functionality is not available.
3. User of EH enabled headers knows the calls won't throw in their program and
   wants the performance gain from ignoring EH construct.

The implementation tried to accomplish that by removing any landing pad code
 that might get generated.

Reviewed by: aaron.ballman

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

4 years agoRevert "[SCCP] Remove forcedconstant, go to overdefined instead"
Florian Hahn [Wed, 12 Feb 2020 09:41:19 +0000 (09:41 +0000)]
Revert "[SCCP] Remove forcedconstant, go to overdefined instead"

This causes a crash for the reproducer below

 enum { a };
 enum b { c, d };
 e;
 static _Bool g(struct f *h, enum b i) {
   i &&j();
   return a;
 }
 static k(char h, enum b i) {
   _Bool l = g(e, i);
   l;
 }
 m(h) {
   k(h, c);
   g(h, d);
 }

This reverts commit aadb635e04854220064b77cc10d0e6772f5492fd.

4 years ago[CodeGen] Fix the computation of the alignment of split stores.
Clement Courbet [Mon, 10 Feb 2020 10:27:53 +0000 (11:27 +0100)]
[CodeGen] Fix the computation of the alignment of split stores.

Summary:
Right now the alignment of the lower half of a store is computed as
align/2, which fails for unaligned stores (align = 1), and is overly
pessimitic for, e.g. a 8 byte store aligned to 4 bytes.
Fixes PR44851
Fixes PR44877

Reviewers: gchatelet, spatel, lebedev.ri

Subscribers: hiraditya, llvm-commits

Tags: #llvm

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

4 years ago[NFC?][SCEV][LoopVectorize] Add datalayout to the X86/float-induction-x86.ll test
Roman Lebedev [Wed, 12 Feb 2020 09:27:38 +0000 (12:27 +0300)]
[NFC?][SCEV][LoopVectorize] Add datalayout to the X86/float-induction-x86.ll test

Summary:
Currently, `SCEVExpander::isHighCostExpansionHelper()` has the following logic:
```
  if (auto *UDivExpr = dyn_cast<SCEVUDivExpr>(S)) {
    // If the divisor is a power of two and the SCEV type fits in a native
    // integer (and the LHS not expensive), consider the division cheap
    // irrespective of whether it occurs in the user code since it can be
    // lowered into a right shift.
    if (auto *SC = dyn_cast<SCEVConstant>(UDivExpr->getRHS()))
      if (SC->getAPInt().isPowerOf2()) {
        if (isHighCostExpansionHelper(UDivExpr->getLHS(), L, At,
                                      BudgetRemaining, TTI, Processed))
          return true;
        const DataLayout &DL =
            L->getHeader()->getParent()->getParent()->getDataLayout();
        unsigned Width = cast<IntegerType>(UDivExpr->getType())->getBitWidth();
        return DL.isIllegalInteger(Width);
      }
```

Since this test does not have a datalayout specified,
`SCEVExpander::isHighCostExpansionHelper()` says that
`[[TMP2:%.*]] = lshr exact i64 [[TMP1]], 5` is high-cost, and didn't perform it.

But future patches will change that logic to solely rely on cost-model,
without any such datalayout checks, so i think it is best to show
that that change is ephemeral, and can already happen without costmodel changes.

Reviewers: reames, fhahn, sanjoy, craig.topper, RKSimon

Reviewed By: RKSimon

Subscribers: javed.absar, llvm-commits

Tags: #llvm

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

4 years ago[DebugInfo] Enable the debug entry values feature by default
Djordje Todorovic [Mon, 10 Feb 2020 10:06:44 +0000 (11:06 +0100)]
[DebugInfo] Enable the debug entry values feature by default

This patch enables the debug entry values feature.

  - Remove the (CC1) experimental -femit-debug-entry-values option
  - Enable it for x86, arm and aarch64 targets
  - Resolve the test failures
  - Leave the llc experimental option for targets that do not
    support the CallSiteInfo yet

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

4 years agoRemove static registration for dialects, and the "alwayslink" hack for passes
Mehdi Amini [Wed, 12 Feb 2020 09:03:40 +0000 (09:03 +0000)]
Remove static registration for dialects, and the "alwayslink" hack for passes

In the previous state, we were relying on forcing the linker to include
all libraries in the final binary and the global initializer to self-register
every piece of the system. This change help moving away from this model, and
allow users to compose pieces more freely. The current change is only "fixing"
the dialect registration and avoiding relying on "whole link" for the passes.
The translation is still relying on the global registry, and some refactoring
is needed to make this all more convenient.

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

4 years ago[CodeGenPrepare] Add more store splitting tests for PR44877.
Clement Courbet [Wed, 12 Feb 2020 08:05:27 +0000 (09:05 +0100)]
[CodeGenPrepare] Add more store splitting tests for PR44877.

4 years ago[lldb][NFC] Remove GetConstTypeName and GetConstQualifiedTypeName from CompilerType
Raphael Isemann [Wed, 12 Feb 2020 08:35:19 +0000 (09:35 +0100)]
[lldb][NFC] Remove GetConstTypeName and GetConstQualifiedTypeName from CompilerType

Beside these two functions just being wrappers around GetTypeName they are also
just a leftover from migrating the CompilerType interface to ConstString.

4 years ago[lldb][NFC] Move common_completions mapping out of CommandCompletions header.
Raphael Isemann [Wed, 12 Feb 2020 08:22:59 +0000 (09:22 +0100)]
[lldb][NFC] Move common_completions mapping out of CommandCompletions header.

4 years ago[mlir] Revise naming of MLIROptMain and MLIRMlirOptLib
Marius Brehler [Wed, 12 Feb 2020 08:41:40 +0000 (09:41 +0100)]
[mlir] Revise naming of MLIROptMain and MLIRMlirOptLib

* Rename CMake target MLIROptMain to MLIROptLib:
   The target provides the main library
* Rename CMake target MLIRMlirOptLib to MLIRMlirOptMain:
   The target provides the main() entry function

At the moment, the Bazel configuration of TenorFlow maps the target
MlirOptLib to "lib/Support/MlirOptMain.cpp" and MlirOptMain to
"tools/mlir-opt/mlir-opt.cpp". This is the other way around in the CMake
configuration. As discussed in the context of the pull request
https://github.com/tensorflow/tensorflow/pull/36301, it seems useful to
revise the naming in the MLIR repo.

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

4 years ago[APFloat] Fix FP remainder operation
Ehud Katz [Wed, 12 Feb 2020 08:42:55 +0000 (10:42 +0200)]
[APFloat] Fix FP remainder operation

Reimplement IEEEFloat::remainder() function.

Fix PR3359.

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

4 years ago[lldb] Move implementation of GetDisplayName to TypeSystem class
Raphael Isemann [Wed, 12 Feb 2020 08:10:19 +0000 (09:10 +0100)]
[lldb] Move implementation of GetDisplayName to TypeSystem class

CompilerType doesn't implement logic.

4 years ago[yaml2obj][test] - Simplify the test: yaml2obj/ELF/call-graph-profile-section.yaml
Georgii Rymar [Tue, 11 Feb 2020 11:13:16 +0000 (14:13 +0300)]
[yaml2obj][test] - Simplify the test: yaml2obj/ELF/call-graph-profile-section.yaml

Now with the new functionality that allows creating "defines", it is
possible to reduce this test (I tried to find another ones, but seems others
were already fixed previously).

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

4 years agoAMDGPU: llvm.amdgcn.writelane is a source of divergence
Nicolai Hähnle [Tue, 11 Feb 2020 13:40:00 +0000 (14:40 +0100)]
AMDGPU: llvm.amdgcn.writelane is a source of divergence

Summary:
Consider:

  %r = call i32 @llvm.amdgcn.writelane(i32 0, i32 1, i32 2)

This produces a value that is 0 on lane 1, and 2 everywhere else; i.e.,
it is divergent.

Reported-by: Marek Olsak <Marek.Olsak@amd.com>
Reviewers: arsenm, foad, mareko

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

Tags: #llvm

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

4 years agoSelectionDAG: Fix bug in ClusterNeighboringLoads
Nicolai Hähnle [Fri, 7 Feb 2020 21:08:36 +0000 (22:08 +0100)]
SelectionDAG: Fix bug in ClusterNeighboringLoads

Summary:
The method attempts to find loads that can be legally clustered by
looking for loads consuming the same chain glue token.

However, the old code looks at _all_ users of values produced by the
chain node -- including uses of the loaded/returned value of volatile
loads or atomics. This could lead to circular dependencies which then
failed during scheduling.

With this change, we filter out users by getResNo, i.e. by which
SDValue value they use, to ensure that we only look at users of the
chain glue token.

This appears to be a rather old bug, which is perhaps surprising.
However, the test case is actually quite fragile (i.e., it is hidden
by fairly small changes), and the test _must_ use volatile loads for
the bug to manifest.

Reviewers: arsenm, bogner, craig.topper, foad

Subscribers: MatzeB, jvesely, wdng, hiraditya, javed.absar, jfb, kerbowa, llvm-commits

Tags: #llvm

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

4 years ago[lldb][NFC] Move all completer subclasses into source file
Raphael Isemann [Wed, 12 Feb 2020 07:56:03 +0000 (08:56 +0100)]
[lldb][NFC] Move all completer subclasses into source file

They are all implementation details so let's keep them out of the interface.
Also makes this code more readable by keeping these small classes
not spread over header and source file.

4 years ago[MLIR] Support memrefs with complex element types.
Alexander Belyaev [Wed, 12 Feb 2020 08:04:15 +0000 (09:04 +0100)]
[MLIR] Support memrefs with complex element types.

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

4 years ago[VE] Bit operator isel
Kazushi (Jam) Marukawa [Wed, 12 Feb 2020 08:01:30 +0000 (09:01 +0100)]
[VE] Bit operator isel

Summary: Isel and tests for bswap,brev,ctpop,ctlz,ctty,rotl,rotr

Reviewed By: arsenm

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

4 years ago[lldb][NFC] Remove eCustomCompletion mode
Raphael Isemann [Wed, 12 Feb 2020 06:57:00 +0000 (07:57 +0100)]
[lldb][NFC] Remove eCustomCompletion mode

It's not used by anyone. Also if something implements its own
completion it could just not call the method instead of having
a parameter that makes the function a no-op.

4 years ago[X86] Add test case for SoftPromoteHalf of STRICT_FP_EXTEND/STRICT_FP_ROUND.
Craig Topper [Wed, 12 Feb 2020 07:27:26 +0000 (23:27 -0800)]
[X86] Add test case for SoftPromoteHalf of STRICT_FP_EXTEND/STRICT_FP_ROUND.

Tests that should have been with 0daf9b8e41327b1511b2bbc272184ff4fdb8de79

4 years ago[X86] Remove unnecessary hasSideEffects = 0, mayLoad = 1 from an instruction with...
Craig Topper [Wed, 12 Feb 2020 07:16:32 +0000 (23:16 -0800)]
[X86] Remove unnecessary hasSideEffects = 0, mayLoad = 1 from an instruction with a pattern. NFC

4 years ago[X86] Correct the predicate on some patterns for 128 and 256 EVEX versions of VCVTPS2PH.
Craig Topper [Wed, 12 Feb 2020 07:13:28 +0000 (23:13 -0800)]
[X86] Correct the predicate on some patterns for 128 and 256 EVEX versions of VCVTPS2PH.

These should require AVX512VL not AVX512F. The legacy VEX patterns
will match first unless AVX512VL is enabled so this doesn't cause
a functional issue.

4 years ago[DebugInfo] Add support for DWARF64 into DWARFDebugAddr.
Igor Kudrin [Mon, 8 Jul 2019 14:55:36 +0000 (21:55 +0700)]
[DebugInfo] Add support for DWARF64 into DWARFDebugAddr.

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

4 years ago[DebugInfo] Simplify DWARFDebugAddr.
Igor Kudrin [Thu, 6 Feb 2020 07:14:12 +0000 (14:14 +0700)]
[DebugInfo] Simplify DWARFDebugAddr.

The patch removes unnecessary members of DWARFDebugAddr and further
simplifies the implementation by separating parsing methods of tables
in the DWARFv5 and pre-standard formats.

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

4 years ago[DebugInfo] Refine error messages in DWARFDebugAddr.
Igor Kudrin [Thu, 6 Feb 2020 09:30:30 +0000 (16:30 +0700)]
[DebugInfo] Refine error messages in DWARFDebugAddr.

As a preparation for the subsequent patches, this updates the wordings
of some error messages in DWARFDebugAddr.

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

4 years ago[DebugInfo] Use "an address table" in diagnostic messages of DWARFDebugAddr.
Igor Kudrin [Tue, 11 Feb 2020 08:55:12 +0000 (15:55 +0700)]
[DebugInfo] Use "an address table" in diagnostic messages of DWARFDebugAddr.

This replaces a collocation "a .debug_addr table" with "an address table"
because the latter sounds more accurate.

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

4 years ago[DebugInfo] Do not dump header field for pre-DWARFv5 address tables.
Igor Kudrin [Thu, 6 Feb 2020 13:34:10 +0000 (20:34 +0700)]
[DebugInfo] Do not dump header field for pre-DWARFv5 address tables.

As there is no header in pre-DWARFv5 address tables, and we fill
the class data members with some artificial values, we should not
dump them as that might be misleading.

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

4 years ago[DebugInfo] Fix reading addresses in DWARFDebugAddr.
Igor Kudrin [Tue, 11 Feb 2020 12:43:20 +0000 (19:43 +0700)]
[DebugInfo] Fix reading addresses in DWARFDebugAddr.

As addresses in the address tables may have relocations, thus,
the relocations should be resolved to read the correct address.
That is especially important for targets that use RELA relocations
because in that case addends are stored in relocation sections.

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

4 years ago[X86][LegalizeTypes] Add SoftPromoteHalf support STRICT_FP_EXTEND and STRICT_FP_ROUND
Craig Topper [Wed, 12 Feb 2020 04:24:51 +0000 (20:24 -0800)]
[X86][LegalizeTypes] Add SoftPromoteHalf support STRICT_FP_EXTEND and STRICT_FP_ROUND

This adds a strict version of FP16_TO_FP and FP_TO_FP16 and uses
them to implement soft promotion for the half type. This is
enough to provide basic support for __fp16 with strictfp.

Add the necessary X86 support to use VCVTPS2PH/VCVTPH2PS when F16C
is enabled.

4 years ago[lldb] Remove skipIfFreeBSD from TestCompletion
Raphael Isemann [Wed, 12 Feb 2020 06:13:48 +0000 (07:13 +0100)]
[lldb] Remove skipIfFreeBSD from TestCompletion

This was skipped because of an pexpect issue (http://llvm.org/pr22784),
but this test is no longer using pexpect and is running fine on FreeBSD.

4 years ago[CMake] Delete llvm_add_go_executable and a reference to TARGET llvm-go
Fangrui Song [Wed, 12 Feb 2020 04:45:05 +0000 (20:45 -0800)]
[CMake] Delete llvm_add_go_executable and a reference to TARGET llvm-go

llvm-go was deleted by 102814b4d36ad004a2e37cd2a1e84bd2c3593d29.

4 years agoRevert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""
Yuanfang Chen [Wed, 12 Feb 2020 04:39:34 +0000 (20:39 -0800)]
Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""

This reverts commit rGcd5b308b828e, rGcd5b308b828e, rG8cedf0e2994c.

There are issues to be investigated for polly bots and bots turning on
EXPENSIVE_CHECKS.

4 years ago[TestConstVariable] Clean-up XFAIL lists.
Davide Italiano [Wed, 12 Feb 2020 04:30:12 +0000 (20:30 -0800)]
[TestConstVariable] Clean-up XFAIL lists.

These versions of `clang` are ancient history.

4 years agoAMDGPU: Use conditions directly in division expansion
Matt Arsenault [Tue, 11 Feb 2020 20:13:42 +0000 (15:13 -0500)]
AMDGPU: Use conditions directly in division expansion

This was creating a select on true/false values, and then comparing
that later. This produced more work for later combines, which can be
avoided by just using the boolean values. This was copied from the
original DAG expansion, which also has the same problem. This doesn't
have a observable change using SelectionDAG, but since GlobalISel is
missing these optimizations, the final code was noticeably longer.

4 years ago[OpenMP][Offloading] Added support for multiple streams so that multiple kernels...
Johannes Doerfert [Wed, 12 Feb 2020 04:06:32 +0000 (22:06 -0600)]
[OpenMP][Offloading] Added support for multiple streams so that multiple kernels can be executed concurrently

Reviewed By: jdoerfert

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

4 years agoTemporarily XFAIL these two tests.
Yuanfang Chen [Wed, 12 Feb 2020 03:18:23 +0000 (19:18 -0800)]
Temporarily XFAIL these two tests.

llvm/test/CodeGen/X86/inline-asm-avx-v-constraint-32bit.ll
llvm/test/CodeGen/X86/inline-asm-avx512vl-v-constraint-32bit.ll

4 years agoFix two more test cases for https://reviews.llvm.org/D74456.
Yuanfang Chen [Wed, 12 Feb 2020 02:34:34 +0000 (18:34 -0800)]
Fix two more test cases for https://reviews.llvm.org/D74456.

4 years agoReland "[Support] make report_fatal_error `abort` instead of `exit`"
Yuanfang Chen [Tue, 11 Feb 2020 02:33:05 +0000 (18:33 -0800)]
Reland "[Support] make report_fatal_error `abort` instead of `exit`"

Summary:
Reland D67847 after D73742 is committed. Replace `sys::Process::Exit(1)`
with `abort` in `report_fatal_error`.

After this patch, for tools turning on `CrashRecoveryContext`,
crash handler installed by `CrashRecoveryContext` is called unless
they installed a non-returning handler using `llvm::install_fatal_error_handler`
like `cc1_main` currently does.

Reviewers: rnk, MaskRay, aganea, hans, espindola, jhenderson

Subscribers: jholewinski, qcolombet, dschuff, jyknight, emaste, sdardis, nemanjai, jvesely, nhaehnle, sbc100, jgravelle-google, hiraditya, aheejin, kbarton, fedor.sergeev, asb, rbar, johnrusso, simoncook, sabuasal, niosHD, jrtc27, zzheng, edward-jones, atanasyan, steven_wu, rogfer01, MartinMosbeck, brucehoult, the_o, dexonsmith, PkmX, rupprecht, jocewei, jsji, Jim, dmgreen, lenary, s.egerton, pzheng, sameer.abuasal, apazos, luismarques, kerbowa, cfe-commits, llvm-commits

Tags: #clang, #llvm

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

4 years agoRemoved declared but non-existent createMaterializeVectorsPass() (NFC)
Mehdi Amini [Wed, 12 Feb 2020 02:05:31 +0000 (02:05 +0000)]
Removed declared but non-existent createMaterializeVectorsPass() (NFC)

4 years ago[lld][WebAssembly] Fail if bitcode objects are pulled in after LTO
Sam Clegg [Fri, 20 Dec 2019 01:30:24 +0000 (17:30 -0800)]
[lld][WebAssembly] Fail if bitcode objects are pulled in after LTO

This can happen if lto::LTO::getRuntimeLibcallSymbols doesn't return
an complete/accurate list of libcalls.  In this case new bitcode
object can be linked in after LTO.

For example the WebAssembly backend currently calls:
  setLibcallName(RTLIB::FPROUND_F32_F16, "__truncsfhf2");

But `__truncsfhf2` is not part of `getRuntimeLibcallSymbols` so if
this symbol is generated during LTO the link will currently fail.

Without this change the linker crashes because the bitcode symbol
makes it all the way to the output phase.

See: https://bugs.llvm.org/show_bug.cgi?id=44353

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

4 years ago[compiler-rt] Compile __powitf2 under wasm
Sam Clegg [Sat, 8 Feb 2020 02:15:15 +0000 (18:15 -0800)]
[compiler-rt] Compile __powitf2 under wasm

See https://github.com/emscripten-core/emscripten/issues/10374
See https://reviews.llvm.org/D74274

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

4 years ago[test] Improve test/CodeGen/X86/linux-preemption.ll
Fangrui Song [Wed, 12 Feb 2020 01:17:08 +0000 (17:17 -0800)]
[test] Improve test/CodeGen/X86/linux-preemption.ll

4 years ago[AMDGPU][GlobalISel] Refactor selectDS1Addr1Offset/selectDS64Bit4ByteAligned
Austin Kerbow [Fri, 7 Feb 2020 16:29:23 +0000 (08:29 -0800)]
[AMDGPU][GlobalISel] Refactor selectDS1Addr1Offset/selectDS64Bit4ByteAligned

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

4 years agoRe-land "[MS] Overhaul how clang passes overaligned args on x86_32"
Reid Kleckner [Wed, 12 Feb 2020 00:03:26 +0000 (16:03 -0800)]
Re-land "[MS] Overhaul how clang passes overaligned args on x86_32"

This brings back 2af74e27ed7d0832cbdde9cb969aaca7a42e99f9 and reverts
eaabaf7e04fe98990a8177a3e053346395efde1c.

The changes were correct, the code that was broken contained an ODR
violation that assumed that these types are passed equivalently:
  struct alignas(uint64_t) Wrapper { uint64_t P };
  void f(uint64_t p);
  void f(Wrapper p);

MSVC does not pass them the same way, and so clang-cl should not pass
them the same way either.

4 years ago[lldb/Plugins] Rename OSPython plugin to OperatingSystemPython (NFC)
Jonas Devlieghere [Wed, 12 Feb 2020 00:31:26 +0000 (16:31 -0800)]
[lldb/Plugins] Rename OSPython plugin to OperatingSystemPython (NFC)

Rename the plugin to match both the directory structure and the class.

4 years agoReverted the remainings of c1c9819ef91aab51b5a23fb3027adac5a2f551cc
Galina Kistanova [Wed, 12 Feb 2020 00:20:06 +0000 (16:20 -0800)]
Reverted the remainings of c1c9819ef91aab51b5a23fb3027adac5a2f551cc
as it has left broken llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast buildbot for long time.

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

4 years agoRewrite default "could not attach" msg to point to hints
Jason Molenda [Wed, 12 Feb 2020 00:17:35 +0000 (16:17 -0800)]
Rewrite default "could not attach" msg to point to hints
about where more information can be found about why it
may have failed.
<rdar://problem/59277928>

4 years agoAMDGPU: Don't expand more special div cases in IR
Matt Arsenault [Tue, 11 Feb 2020 19:57:09 +0000 (14:57 -0500)]
AMDGPU: Don't expand more special div cases in IR

These have nicer expansions implemented in the DAG. Ideally we would
either directly implement all of these special expansions, or stop
expanding division in the IR.

4 years agoFix MSVC build with C++ EH enabled
Reid Kleckner [Tue, 11 Feb 2020 23:50:27 +0000 (15:50 -0800)]
Fix MSVC build with C++ EH enabled

Mark the CrashRecoveryContextImpl constructor noexcept, so that MSVC
won't emit an unwind helper to clean up the allocation from `new` if the
constructor throws an exception.

Otherwise, MSVC complains:
  llvm\lib\Support\CrashRecoveryContext.cpp(220): error C2712: \
  Cannot use __try in functions that require object unwinding

The other simple fix would be to wrap `new` in a static helper or
lambda.

Users have reported that Tensorflow builds LLVM with /EHsc.

4 years ago[lldb/Plugins] Move PlatformRemoteiOS into PlatformMacOSX (NFCI)
Jonas Devlieghere [Tue, 11 Feb 2020 23:52:41 +0000 (15:52 -0800)]
[lldb/Plugins] Move PlatformRemoteiOS into PlatformMacOSX (NFCI)

Move the logic for initialization and termination for PlatformRemoteiOS
into PlatformMacOSX, like we did for the other Darwin platforms in
a731c6ba94d0464c6a122de1af70ab88ffb5c1a6.

4 years agoAMDGPU: Don't report 2-byte alignment as fast
Matt Arsenault [Mon, 10 Feb 2020 15:30:34 +0000 (10:30 -0500)]
AMDGPU: Don't report 2-byte alignment as fast

This is apparently worse than 1-byte alignment. This does not attempt
to decompose 2-byte aligned wide stores, but will stop trying to
produce them.

Also fix bug in LoadStoreVectorizer which was decreasing the alignment
and vectorizing stack accesses. It was assuming a stack object was an
alloca that could have its base alignment changed, which is not true
if the pointer is derived from a function argument.

4 years ago[llvm-objcopy][WebAssembly] Add dump/add/remove-section support
Derek Schuff [Tue, 11 Feb 2020 23:13:40 +0000 (15:13 -0800)]
[llvm-objcopy][WebAssembly] Add dump/add/remove-section support

Add support for adding, removing, and dumping wasm sections to objcopy

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

4 years agoUse std::foo_t rather than std::foo in LLVM.
Justin Lebar [Tue, 11 Feb 2020 04:33:08 +0000 (20:33 -0800)]
Use std::foo_t rather than std::foo in LLVM.

Summary: C++14 migration. No functional change.

Reviewers: bkramer, JDevlieghere, lebedev.ri

Subscribers: MatzeB, hiraditya, jkorous, dexonsmith, arphaman, kadircet, lebedev.ri, usaxena95, cfe-commits, llvm-commits

Tags: #clang, #llvm

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

4 years ago[OpenMP] Switch default C++ standard to C++ 14
Johannes Doerfert [Tue, 11 Feb 2020 23:08:48 +0000 (17:08 -0600)]
[OpenMP] Switch default C++ standard to C++ 14

Reviewed By: JonChesterfield

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

4 years agoAMDGPU: Add baseline tests for CGP div expansion
Matt Arsenault [Tue, 11 Feb 2020 18:54:17 +0000 (13:54 -0500)]
AMDGPU: Add baseline tests for CGP div expansion

These cases are harmed by expanding division early in the IR, before
DAGCombiner.

4 years agoAMDGPU: Fix crash on v3i15 kernel arguments
Matt Arsenault [Tue, 11 Feb 2020 19:33:50 +0000 (14:33 -0500)]
AMDGPU: Fix crash on v3i15 kernel arguments

This was split into 3 i15 arguments. The i15 piece needs to be rounded
to a simple MVT for the memory type.

4 years agoAMDGPU: Directly use rcp intrinsic in idiv expansions
Matt Arsenault [Tue, 11 Feb 2020 14:58:53 +0000 (09:58 -0500)]
AMDGPU: Directly use rcp intrinsic in idiv expansions

Since natural fdiv lowering is now more conservative even with
denormals disabled, we get a slower expansion from just a plain
1.0/fdiv. Directly emit the rcp intrinsic when using it to implement
integer division to avoid a pointlessly complex sequence.

4 years agoAMDGPU: Don't create potentially dead rcp declarations
Matt Arsenault [Tue, 11 Feb 2020 15:16:16 +0000 (10:16 -0500)]
AMDGPU: Don't create potentially dead rcp declarations

This will introduce unused declarations if this doesn't reach any of
the paths that will really use it.

4 years ago[MachO] Pad section data to pointer size bytes
Aditya Nandakumar [Tue, 11 Feb 2020 22:51:49 +0000 (14:51 -0800)]
[MachO] Pad section data to pointer size bytes

https://reviews.llvm.org/D74273

Pad macho section data to pointer size bytes, so that relocation
table and symbol table following section data will be pointer size
aligned.

Patch by pguo.

4 years ago[NFC] Fix warning: comparison of integers of different signs.
Huihui Zhang [Tue, 11 Feb 2020 22:42:41 +0000 (14:42 -0800)]
[NFC] Fix warning: comparison of integers of different signs.

../polly/lib/Transform/ScheduleOptimizer.cpp:812:54: warning: comparison of integers of different signs: 'isl_size' (aka 'int') and 'const unsigned int' [-Wsign-compare]
         isl_schedule_node_band_n_member(Node.get()) >
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^

4 years ago[NFC] Fix spelling
Johannes Doerfert [Tue, 11 Feb 2020 22:43:52 +0000 (16:43 -0600)]
[NFC] Fix spelling

4 years ago[mlir] Start Shape dialect
Jacques Pienaar [Tue, 11 Feb 2020 22:38:18 +0000 (14:38 -0800)]
[mlir] Start Shape dialect

* Add basic skeleton for Shape dialect;
* Add description of types and ops to be used;

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

4 years agoUse C++14-style return type deduction in clang.
Justin Lebar [Tue, 11 Feb 2020 18:34:01 +0000 (10:34 -0800)]
Use C++14-style return type deduction in clang.

Summary:
Simplifies the C++11-style "-> decltype(...)" return-type deduction.

Note that you have to be careful about whether the function return type
is `auto` or `decltype(auto)`.  The difference is that bare `auto`
strips const and reference, just like lambda return type deduction.  In
some cases that's what we want (or more likely, we know that the return
type is a value type), but whenever we're wrapping a templated function
which might return a reference, we need to be sure that the return type
is decltype(auto).

No functional change.

Reviewers: bkramer, MaskRay, martong, shafik

Subscribers: martong, cfe-commits

Tags: #clang

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

4 years ago[X86] Don't disable code in combineHorizontalPredicateResult just because we have...
Craig Topper [Tue, 11 Feb 2020 21:14:03 +0000 (13:14 -0800)]
[X86] Don't disable code in combineHorizontalPredicateResult just because we have avx512

We aren't doing a good job of optimizing AVX512 outside of this code. So remove the bail out for AVX512 and replace with a FIXME. This at least gets us the AVX2 codegen.

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

4 years ago[Utils] Allow "on-the-fly" argument changes for update_test_check scripts
Johannes Doerfert [Fri, 1 Nov 2019 03:45:17 +0000 (22:45 -0500)]
[Utils] Allow "on-the-fly" argument changes for update_test_check scripts

Update test scripts were limited because they performed a single action
on the entire file and if that action was controlled by arguments, like
the one introduced in D68819, there was no record of it.

This patch introduces the capability of changing the arguments passed to
the script "on-the-fly" while processing a test file. In addition, an
"on/off" switch was added so that processing can be disabled for parts
of the file where the content is simply copied. The last extension is a
record of the invocation arguments in the auto generated NOTE. These
arguments are also picked up in a subsequent invocation, allowing
updates with special options enabled without user interaction.

To change the arguments the string `UTC_ARGS:` has to be present in a
line, followed by "additional command line arguments". That is
everything that follows `UTC_ARGS:` will be added to a growing list
of "command line arguments" which is reparsed after every update.

Reviewed By: arichardson

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

4 years ago[AMDGPU] Fixed subreg use in sdwa-scalar-ops.mir. NFC
Stanislav Mekhanoshin [Tue, 11 Feb 2020 22:04:51 +0000 (14:04 -0800)]
[AMDGPU] Fixed subreg use in sdwa-scalar-ops.mir. NFC

4 years agoRevert "Change clang option -ffp-model=precise to select ffp-contract=on"
Melanie Blower [Tue, 11 Feb 2020 22:20:00 +0000 (14:20 -0800)]
Revert "Change clang option -ffp-model=precise to select ffp-contract=on"

This reverts commit 3fcdf2fa945aca5849c5587c55de4186c7d81b8a.
Sorry I was too hasty with my commit, I will review Andy's comments
and resubmit.

4 years agoChange clang option -ffp-model=precise to select ffp-contract=on
Melanie Blower [Tue, 11 Feb 2020 20:39:53 +0000 (12:39 -0800)]
Change clang option -ffp-model=precise to select ffp-contract=on

Reviewers: rjmccall

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

4 years ago[ConstantFold][SVE] Fix constand fold for vector call.
Huihui Zhang [Tue, 11 Feb 2020 22:04:45 +0000 (14:04 -0800)]
[ConstantFold][SVE] Fix constand fold for vector call.

Summary:
Do not iterate on scalable vectors.

Reviewers: sdesmalen, efriedma, apazos, huntergr, willlovett

Reviewed By: sdesmalen

Subscribers: tschuett, hiraditya, rkruppe, psnobl, llvm-commits

Tags: #llvm

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

4 years ago[xray][clang] Always add xray-skip-entry/exit and xray-ignore-loops attrs
Ian Levesque [Tue, 11 Feb 2020 21:52:45 +0000 (13:52 -0800)]
[xray][clang] Always add xray-skip-entry/exit and xray-ignore-loops attrs

The function attributes xray-skip-entry, xray-skip-exit, and
xray-ignore-loops were only being applied if a function had an
xray-instrument attribute, but they should apply if xray is enabled
globally too.

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

4 years ago[mlir][AffineOps] Adds affine loop fusion transformation function to LoopFusionUtils.
Andy Davis [Tue, 11 Feb 2020 21:30:49 +0000 (13:30 -0800)]
[mlir][AffineOps] Adds affine loop fusion transformation function to LoopFusionUtils.

Summary:
Adds affine loop fusion transformation function to LoopFusionUtils.
Updates TestLoopFusion utility to run loop fusion transformation until a fixed point is reached.
Adds unit tests to test the transformation.
Includes ASAN bug fix for D73190.

Reviewers: bondhugula, dcaballe

Reviewed By: bondhugula, dcaballe

Subscribers: mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, Joonsoo, llvm-commits

Tags: #llvm

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

4 years ago[compiler-rt] FuzzedDataProvider: add ConsumeData and method.
Max Moroz [Mon, 10 Feb 2020 22:25:00 +0000 (14:25 -0800)]
[compiler-rt] FuzzedDataProvider: add ConsumeData and method.

Reviewers: metzman

Subscribers: dberris, #sanitizers, llvm-commits

Tags: #sanitizers, #llvm

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

4 years ago[Hexagon] Don't generate short vectors in ISD::SELECT in preprocessing
Krzysztof Parzyszek [Tue, 11 Feb 2020 21:17:22 +0000 (15:17 -0600)]
[Hexagon] Don't generate short vectors in ISD::SELECT in preprocessing

Selection DAG preprocessing runs long after legalization, so make sure
that the types can be handled by the selection code.

4 years ago[DebugInfo] Call site entries cannot be generated for FrameSetup calls
lewis-revill [Tue, 11 Feb 2020 21:23:18 +0000 (21:23 +0000)]
[DebugInfo] Call site entries cannot be generated for FrameSetup calls

Instructions marked as FrameSetup do not cause requestLabelAfterInsn to
be called and so no such label is generated. Call instructions which
require call site entries to be generated require this label to be
present in order to calculate the return PC offset/address, but the
check for whether the call instruction is marked as FrameSetup was not
present.

Therefore in the case where a call instruction is marked as FrameSetup,
an assertion failure occurs if a call site entry is to be generated.
This is the case with RISC-V's implementation of save/restore via
library calls.

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

4 years ago[RISCV] Add support for save/restore of callee-saved registers via libcalls
lewis-revill [Tue, 11 Feb 2020 21:23:03 +0000 (21:23 +0000)]
[RISCV] Add support for save/restore of callee-saved registers via libcalls

This patch adds the support required for using the __riscv_save and
__riscv_restore libcalls to implement a size-optimization for prologue
and epilogue code, whereby the spill and restore code of callee-saved
registers is implemented by common functions to reduce code duplication.

Logic is also included to ensure that if both this optimization and
shrink wrapping are enabled then the prologue and epilogue code can be
safely inserted into the basic blocks chosen by shrink wrapping.

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

4 years ago[Attributor][NFC] Clarify the documentation a bit more
Johannes Doerfert [Tue, 11 Feb 2020 21:11:32 +0000 (15:11 -0600)]
[Attributor][NFC] Clarify the documentation a bit more

4 years ago[Attributor] Identify dead uses in PHIs (almost) based on dead edges
Johannes Doerfert [Tue, 11 Feb 2020 06:10:35 +0000 (00:10 -0600)]
[Attributor] Identify dead uses in PHIs (almost) based on dead edges

As an approximation to a dead edge we can check if the terminator is
dead. If so, the corresponding operand use in a PHI node is dead even if
the PHI node itself is not.

4 years ago[mlir][VectorOps] Adds canonicalization rewrite patterns for vector ShapeCastOp.
Andy Davis [Tue, 11 Feb 2020 20:57:57 +0000 (12:57 -0800)]
[mlir][VectorOps] Adds canonicalization rewrite patterns for vector ShapeCastOp.

Summary:
Adds two rewrite patterns for the vector ShapeCastOp.
*) ShapeCastOp decomposer: decomposes ShapeCastOp on tuple-of-vectors to multiple ShapeCastOps each on vector types.
*) ShapeCastOp folder: folds canceling shape cast ops (e.g. shape_cast A -> B followed by shape_cast B -> A) away.

Reviewers: nicolasvasilache, aartbik

Reviewed By: nicolasvasilache

Subscribers: mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, liufengdb, Joonsoo, llvm-commits

Tags: #llvm

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

4 years ago[NFC] Delete extra white space in a test case.
Steven Wan [Tue, 11 Feb 2020 20:58:32 +0000 (15:58 -0500)]
[NFC] Delete extra white space in a test case.

Remove an extra empty line in one of the AIX driver test cases.

4 years ago[ORC] Fix symbol dependence propagation algorithm in ObjectLinkingLayer.
Lang Hames [Tue, 11 Feb 2020 17:02:22 +0000 (09:02 -0800)]
[ORC] Fix symbol dependence propagation algorithm in ObjectLinkingLayer.

ObjectLinkingLayer was not correctly propagating dependencies through local
symbols within an object. This could cause symbol lookup to return before a
searched-for symbol is ready if the following conditions are met:
(1) The definition of the symbol being searched for transitively depends on a
    local symbol within the same object, and that local symbol in turn
    transitively depends on an external symbol provided by some other module
    in the JIT.
(2) Concurrent compilation is enabled.
(3) Thread scheduling causes the lookup of the searched-for symbol to return
    before all transitive dependencies of the looked-up symbol are emitted.

This bug was found by inspection and has not been observed in practice.

A jitlink test case has been added to verify that symbol dependencies are
correctly propagated through local symbol definitions.

4 years ago[JITLink] Add an assertion that block removal leaves no dangling symbols.
Lang Hames [Tue, 11 Feb 2020 16:51:45 +0000 (08:51 -0800)]
[JITLink] Add an assertion that block removal leaves no dangling symbols.

4 years ago[ORC] Add debug logging to JITDylib::addDependencies.
Lang Hames [Tue, 11 Feb 2020 17:14:44 +0000 (09:14 -0800)]
[ORC] Add debug logging to JITDylib::addDependencies.

4 years ago[OPENMP50]Full handling of atomic_default_mem_order in requires
Alexey Bataev [Tue, 11 Feb 2020 20:15:21 +0000 (15:15 -0500)]
[OPENMP50]Full handling of atomic_default_mem_order in requires
directive.

According to OpenMP 5.0, The atomic_default_mem_order clause specifies the default memory ordering behavior for atomic constructs that must be provided by an implementation. If the default memory ordering is specified as seq_cst, all atomic constructs on which memory-order-clause is not specified behave as if the seq_cst clause appears. If the default memory ordering is specified as relaxed, all atomic constructs on which memory-order-clause is not specified behave as if the relaxed clause appears.
If the default memory ordering is specified as acq_rel, atomic constructs on which memory-order-clause is not specified behave as if the release clause appears if the atomic write or atomic update operation is specified, as if the acquire clause appears if the atomic read operation is specified, and as if the acq_rel clause appears if the atomic captured update operation is specified.

4 years agoUpdate test for windows.
Sterling Augustine [Tue, 11 Feb 2020 20:35:10 +0000 (12:35 -0800)]
Update test for windows.