OSDN Git Service
Sam Parker [Thu, 9 May 2019 11:56:16 +0000 (11:56 +0000)]
[ARM][CGP] Guard against signext args and sitofp
Add an Argument that has the SExtAttr attached, as well as SIToFP
instructions, as values that generate sign bits. SIToFP doesn't
strictly do this and could be treated as a sink to be sign-extended.
Differential Revision: https://reviews.llvm.org/D61381
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360331
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Thu, 9 May 2019 10:51:26 +0000 (10:51 +0000)]
[CodeGenPrepare] Ensure we get a non-null result from getTrueOrFalseValue. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360328
91177308-0d34-0410-b5e6-
96231b3b80d8
Anastasia Stulova [Thu, 9 May 2019 10:16:33 +0000 (10:16 +0000)]
[SPIR] Simplified target checking.
Added Triple::isSPIR() helper to simplify code.
Patch by kpet (Kevin Petit)!
Differential revision: https://reviews.llvm.org/D61639
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360323
91177308-0d34-0410-b5e6-
96231b3b80d8
Sven van Haastregt [Thu, 9 May 2019 10:10:44 +0000 (10:10 +0000)]
Fix LLVM_USE_PERF build after getPageSize change
Commit r360221 ("[Support] Add error handling to
sys::Process::getPageSize().", 2019-05-08) seems to have missed these
uses of getPageSize(). Update them to getPageSizeEstimate().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360322
91177308-0d34-0410-b5e6-
96231b3b80d8
Diana Picus [Thu, 9 May 2019 09:49:36 +0000 (09:49 +0000)]
[ARM GlobalISel] Map DBG_VALUE for types != s32
...and make sure we fail elegantly for unsupported values.
s64 goes into DPR, anything <= 32 into GPR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360321
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 9 May 2019 09:22:56 +0000 (09:22 +0000)]
X86WinAllocaExpander: Drop code looking through register copies (PR41786)
This code was never covered by tests, in PR41786 it was pointed out that
the deletion part doesn't work, and in a full Chrome build I was never
able to hit the code path that looks through copies. It seems the
situation it's supposed to handle doesn't actually come up in practice.
Delete it to simplify the code.
Differential revision: https://reviews.llvm.org/D61671
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360320
91177308-0d34-0410-b5e6-
96231b3b80d8
Clement Courbet [Thu, 9 May 2019 08:37:58 +0000 (08:37 +0000)]
[MergeICmps][NFC] Re-generate tests with update_test_checks.
And use a more compact name for the tested struct.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360319
91177308-0d34-0410-b5e6-
96231b3b80d8
Markus Lavin [Thu, 9 May 2019 08:29:04 +0000 (08:29 +0000)]
Make sub-registers index names case sensitive in the MIRParser
Prior to this change sub-register index names are assumed to be lower
case (but they are printed with original casing). This means that if a
target has some upper case characters in its sub-register names then
mir-export directly followed by mir-import is not possible. This also
means that sub-register indices currently are (and will continue to be)
slightly inconsistent with register names which are printed and assumed
to be lower case.
As the current textual representation of mir has a few inconsistencies
in this area it is a bit arbitrary how to address the matter. This
change is towards the direction that we feel is most correct (i.e. case
sensitivity).
Differential Revision: https://reviews.llvm.org/D61499
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360318
91177308-0d34-0410-b5e6-
96231b3b80d8
Pengfei Wang [Thu, 9 May 2019 08:09:21 +0000 (08:09 +0000)]
Bugfix for nullptr check by klocwork
Klocwork static check:
Pointer from call to function `DebugLoc::operator DILocation *() const `
may be NULL and will be dereference in function `printExtendedName```
Patch by Shengchen Kan (skan)
Differential Revision: https://reviews.llvm.org/D61715
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360317
91177308-0d34-0410-b5e6-
96231b3b80d8
Bjorn Pettersson [Thu, 9 May 2019 08:07:36 +0000 (08:07 +0000)]
[CodeGen] Use "DL.getPointerSizeInBits" instead of "8 * DL.getPointerSize". NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360315
91177308-0d34-0410-b5e6-
96231b3b80d8
Clement Courbet [Thu, 9 May 2019 07:12:25 +0000 (07:12 +0000)]
[NFC] Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360314
91177308-0d34-0410-b5e6-
96231b3b80d8
Petr Hosek [Thu, 9 May 2019 06:09:35 +0000 (06:09 +0000)]
[NewPM] Setup Passes for KASan and KMSan
While ASan and MSan passes were already ported to new PM, the kernel
variants weren't setup in the pipeline which makes the KASan and KMSan
tests in Clang fail.
Differential Revision: https://reviews.llvm.org/D61664
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360313
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Thu, 9 May 2019 02:46:20 +0000 (02:46 +0000)]
lit config: disable LSan for Apple clang compiler in addition to Apple LLVM
Apple clang is the canonical way to refer to the compiler shipped with Xcode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360307
91177308-0d34-0410-b5e6-
96231b3b80d8
Leonard Chan [Thu, 9 May 2019 01:17:48 +0000 (01:17 +0000)]
[SelectionDAG] Expand ADD/SUBCARRY
This patch allows for expansion of ADDCARRY and SUBCARRY when the target does not support it.
Differential Revision: https://reviews.llvm.org/D61411
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360303
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 8 May 2019 23:54:03 +0000 (23:54 +0000)]
Temporarily Revert "[DebugInfo] Terminate more location-list ranges at the end of blocks"
as it was causing significant compile time regressions.
This reverts commit r359426 while we come up with testcases and additional ideas.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360301
91177308-0d34-0410-b5e6-
96231b3b80d8
Stanislav Mekhanoshin [Wed, 8 May 2019 23:31:32 +0000 (23:31 +0000)]
[AMDGPU] gfx1010 tests. NFC.
Added tests which now pass after code commits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360300
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Wed, 8 May 2019 22:19:52 +0000 (22:19 +0000)]
[SelectionDAG] fold 'fneg undef' to undef
This is extracted from the original draft of D61419 with some additional tests.
We don't currently get this in IR (it's conservatively turned into a NaN),
but presumably that'll get updated as we add real IR support for 'fneg'
rather than 'fsub -0.0, x'.
The x86-32 run shows the following, and I haven't looked further to see why,
but that seems to be independent:
Legalizing: t1: f32 = undef
Trying to expand node
Creating fp constant: t4: f32 = ConstantFP<0.
000000e+00>
Differential Revision: https://reviews.llvm.org/D61516
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360296
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Wed, 8 May 2019 22:10:04 +0000 (22:10 +0000)]
AMDGPU: Mark scheduler classes as final
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360294
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Wed, 8 May 2019 22:09:57 +0000 (22:09 +0000)]
AMDGPU: Select VOP3 form of add
The VOP3 form should always be the preferred selection, to be shrunk
later. This should only be an optimization issue, but this partially
works around a problem from clobbering VCC when SIFixSGPRCopies
rewrites an SCC defining operation directly to VCC.
3 of the testcases are regressions from failing to fold the immediate
in cases it should. These can be avoided by improving the VCC liveness
handling in SIFoldOperands. Simply increasing the threshold to
computeRegisterLiveness works, although this is common enough that VCC
liveness should probably be tracked throughout the pass. The hack of
leaving behind an implicit_def instruction to avoid breaking iterator
wastes instruction count, which inhibits finding the VCC def in long
chains of adds. Doing this however exposes different, worse looking
regressions from poor scheduling behavior. This could probably be
avoided around by forcing the shrink of the addc here, but the
scheduler should probably be fixed.
The r600 add test needs to be split out because it asserts on the
arguments in the new test during the calling convention lowering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360293
91177308-0d34-0410-b5e6-
96231b3b80d8
Thomas Preud'homme [Wed, 8 May 2019 21:47:36 +0000 (21:47 +0000)]
[FileCheck, NFC] Split defines.txt in two
Summary:
Split defines.txt into diagnostics test and functionality test. Also add
comments, remove the semicolon prefix and group RUN lines with their
CHECK directives.
Reviewers: jhenderson, probinson, arichardson
Subscribers: llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D61679
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360289
91177308-0d34-0410-b5e6-
96231b3b80d8
Thomas Preud'homme [Wed, 8 May 2019 21:47:31 +0000 (21:47 +0000)]
[FileCheck] Fix code style of method comments
Summary:
Fix various issues in code style of method comments:
1) Move all heading comments to all non-static methods near their
declaration in the FileCheck.h header file.
2) Harmonize the action verb in doxygen comments for methods to always
be in third person
3) Use \returns instead of free text "return" and "returns".
4) Document a couple more parameters while at it.
Reviewers: jhenderson, probinson, arichardson
Subscribers: javed.absar, kristof.beyls, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D61445
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360288
91177308-0d34-0410-b5e6-
96231b3b80d8
Stanislav Mekhanoshin [Wed, 8 May 2019 21:23:37 +0000 (21:23 +0000)]
[AMDGPU] gfx1010 exp modifications
Differential Revision: https://reviews.llvm.org/D61701
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360287
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 8 May 2019 20:59:21 +0000 (20:59 +0000)]
[InstCombine] When turning sext into zext due to known bits, return the new ZExt instead of calling replaceinstuseswith
The worklist loop that we're returning back to should be able to do the repacement itself. This is how we normally do replacements.
My main motivation was that I observed that we weren't preserving the name of the result when we do this transform. The replacement code in the worklist loop will call takeName as part of the replacement.
Differential Revision: https://reviews.llvm.org/D61695
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360284
91177308-0d34-0410-b5e6-
96231b3b80d8
Changpeng Fang [Wed, 8 May 2019 19:46:04 +0000 (19:46 +0000)]
AMDGPU: Fix a mis-placed bracket
Differential Revision:
https://reviews.llvm.org/D61430
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360283
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 8 May 2019 19:20:53 +0000 (19:20 +0000)]
[X86] Add a non-ambiguous check prefix to lwp-intrinsics.ll for the case when only the feature is specified and not the CPUs.
Not sure why the script doesn't notice this. We just weren't checking the +lwp command in 32-bit mode in 2 of the test cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360282
91177308-0d34-0410-b5e6-
96231b3b80d8
Cameron McInally [Wed, 8 May 2019 19:06:03 +0000 (19:06 +0000)]
Precommit FNeg InstCombine tests
Differential Revision: https://reviews.llvm.org/D61685
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360281
91177308-0d34-0410-b5e6-
96231b3b80d8
Warren Ristow [Wed, 8 May 2019 18:50:07 +0000 (18:50 +0000)]
[SCEV] Suppress hoisting insertion point of binops when unsafe
InsertBinop tries to move insertion-points out of loops for expressions
that are loop-invariant. This patch adds a new parameter, IsSafeToHost,
to guard that hoisting. This allows callers to suppress that hoisting
for unsafe situations, such as divisions that may have a zero
denominator.
This fixes PR38697.
Differential Revision: https://reviews.llvm.org/D55232
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360280
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 8 May 2019 18:39:03 +0000 (18:39 +0000)]
Fix new reassociate-catchswitch.ll test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360279
91177308-0d34-0410-b5e6-
96231b3b80d8
Quentin Colombet [Wed, 8 May 2019 18:30:26 +0000 (18:30 +0000)]
[RegAllocFast] Scan physcial reg definitions before assigning virtual reg definitions
When assigning the definitions of an instruction we were updating
the available registers while walking the definitions. Some of
those definitions may be from physical registers and thus, they are
not available for other definitions to take, but by the time we see
that we may have already assign these registers to another
virtual register.
Fix that by walking through all the definitions and mark as unavailable
the physical register definitions, then do the virtual register assignments.
PR41790
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360278
91177308-0d34-0410-b5e6-
96231b3b80d8
Alina Sbirlea [Wed, 8 May 2019 17:58:35 +0000 (17:58 +0000)]
[NewPassManager] Add tuning option: SLPVectorization [NFC].
Summary: Mirror tuning option from old pass manager in new pass manager.
Reviewers: chandlerc
Subscribers: mehdi_amini, jlebar, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D61616
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360276
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Wed, 8 May 2019 17:53:18 +0000 (17:53 +0000)]
[InstSimplify] add tests for fcmp+minnum; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360275
91177308-0d34-0410-b5e6-
96231b3b80d8
Philip Reames [Wed, 8 May 2019 17:28:38 +0000 (17:28 +0000)]
[Tests] Landing tests for D58632 to show diffs in review
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360274
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 8 May 2019 17:27:08 +0000 (17:27 +0000)]
[FastISel][X86] Support FNeg instruction in target independent fast isel handling
This patch adds support for calling selectFNeg for FNeg instructions in addition to the fsub idiom
Differential Revision: https://reviews.llvm.org/D61624
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360273
91177308-0d34-0410-b5e6-
96231b3b80d8
Alina Sbirlea [Wed, 8 May 2019 17:05:36 +0000 (17:05 +0000)]
[MemorySSA] Teach LoopSimplify to preserve MemorySSA.
Summary:
Preserve MemorySSA in LoopSimplify, in the old pass manager, if the analysis is available.
Do not preserve it in the new pass manager.
Update tests.
Subscribers: nemanjai, jlebar, javed.absar, Prazek, kbarton, zzheng, jsji, llvm-commits, george.burgess.iv, chandlerc
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D60833
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360270
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Wed, 8 May 2019 16:29:39 +0000 (16:29 +0000)]
[AArch64] Remove scan-build "Value stored during its initialization is never read" warnings. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360268
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Wed, 8 May 2019 16:27:24 +0000 (16:27 +0000)]
[AArch64] Fix scan-build null/uninitialized pointer warnings. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360267
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Wed, 8 May 2019 15:49:10 +0000 (15:49 +0000)]
[AMDGPU] Reapplied BFE canonicalization from D60462
This was committed in rL358887 but reverted in rL360066 due to a x86 regression, really it should be have been pre-committed instead of being part of the SimplifyDemandedBits bitcast patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360263
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Wed, 8 May 2019 15:44:24 +0000 (15:44 +0000)]
[Reassociation] Place moved instructions after landing pads
Reassociation's NegateValue moved instructions to the beginning of
blocks (after PHIs) without checking for exception handling pads.
It's possible for reassociation to move something into an exception
handling block so we need to make sure we don't move things too early
in the block. This change advances the insertion point past any
exception handling pads.
If the block we want to move into contains a catchswitch, we cannot
move into it. In that case just create a new neg as if we had not
found an existing neg to move.
Differential Revision: https://reviews.llvm.org/D61089
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360262
91177308-0d34-0410-b5e6-
96231b3b80d8
Nikita Popov [Wed, 8 May 2019 14:50:01 +0000 (14:50 +0000)]
Revert "[ValueTracking] Improve isKnowNonZero for Ints"
This reverts commit
3b137a495686bd6018d115ea82fb8bb7718349fd.
As reported in https://reviews.llvm.org/D60846, this is causing
miscompiles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360260
91177308-0d34-0410-b5e6-
96231b3b80d8
Petar Jovanovic [Wed, 8 May 2019 14:42:13 +0000 (14:42 +0000)]
[Support] Fix unit test for fs::is_local
Close the temporary file after the test is done using it.
If it is not closed and the file was created on NFS, it will cause the test
to fail. The problem happens in the cleanup process afterwards. It first
tries to delete the file but it is not really deleted. Afterwards, the
program fails to delete the directory containing the file, causing the whole
test to fail.
Patch by Milos Stojanovic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360259
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Wed, 8 May 2019 13:47:17 +0000 (13:47 +0000)]
[ADT] SmallVector::set_size - fix Wdocumentation. NFCI.
Also fixes a Wshadow warning on MSVC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360255
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Wed, 8 May 2019 13:41:01 +0000 (13:41 +0000)]
gn build: Merge r360151
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360253
91177308-0d34-0410-b5e6-
96231b3b80d8
James Henderson [Wed, 8 May 2019 13:30:48 +0000 (13:30 +0000)]
[NFC]Fix British English -> American English issues
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360252
91177308-0d34-0410-b5e6-
96231b3b80d8
James Henderson [Wed, 8 May 2019 13:28:58 +0000 (13:28 +0000)]
[llvm-objcopy] Improve error message for unrecognised archive member
Prior to this patch, llvm-objcopy's error messages for archives with
unsupported members only mentioned the archive name, not the member
name, making them unhelpful. This change improves it by approximately
following GNU objcopy's error message syntax of
"<archive name>(<member name>): <problem>".
Reviewed by: grimar
Differential Revision: https://reviews.llvm.org/D61674
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360251
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Wed, 8 May 2019 13:02:32 +0000 (13:02 +0000)]
Fix whitespace mismatches. NFCI.
Tabs are not our friends.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360248
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Wed, 8 May 2019 11:22:10 +0000 (11:22 +0000)]
[LegalizeDAG] Assert non-power-of-2 load/store op splits are in range. NFCI.
Fixes static analyzer undefined/out-of-range shift warnings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360245
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Wed, 8 May 2019 11:02:46 +0000 (11:02 +0000)]
[Hexagon] Fix cppcheck reduce variable scope warnings. NFCI.
Also fixes a static analyzer "Value stored to 'S2' during its initialization is never read" warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360244
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrea Di Biagio [Wed, 8 May 2019 11:00:43 +0000 (11:00 +0000)]
[MCA] Don't add a name to the default code region.
This is done in preparation for a patch that fixes PR41523.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360243
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Wed, 8 May 2019 10:59:08 +0000 (10:59 +0000)]
ARM: disallow SP as Rn for Thumb2 TST & TEQ instructions
Using SP in this position is unpredictable in ARMv7. CMP and CMN are not
affected, and of course v8 relaxes this requirement, but that's handled
elsewhere.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360242
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Wed, 8 May 2019 10:52:26 +0000 (10:52 +0000)]
[VPlan] Fix "value never used" static analyzer warning. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360241
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrea Di Biagio [Wed, 8 May 2019 10:44:05 +0000 (10:44 +0000)]
[MCA] Slightly refactor CodeRegion.h. NFCI
Also, use a SmallVector instead of a std::vector for the code region.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360240
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Wed, 8 May 2019 10:39:56 +0000 (10:39 +0000)]
R600InstrInfo.cpp - Add getTransSwizzle assert for the swizzle op index. NFCI.
Fixes static analyzer undefined value warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360239
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrea Di Biagio [Wed, 8 May 2019 10:28:56 +0000 (10:28 +0000)]
[MCA] Remove dead assignment. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360237
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Wed, 8 May 2019 10:24:22 +0000 (10:24 +0000)]
[SIMode] Fix typo in Status constructor
As noted in https://www.viva64.com/en/b/0629/ (Snippet No. 36) and the scan-build CI reports (https://llvm.org/reports/scan-build/report-SIModeRegister.cpp-Status-1-1.html#EndPath), rL348754 introduced a typo in the Status constructor due to argument variable names shadowing the member variable names.
Differential Revision: https://reviews.llvm.org/D61595
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360236
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Wed, 8 May 2019 10:09:57 +0000 (10:09 +0000)]
[DebugInfo] Fix use-after-move warning. NFCI.
Don't rely on DWARFAbbreviationDeclarationSet::extract cleaning the struct up for reuse - the analyzers don't like it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360235
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Wed, 8 May 2019 10:07:34 +0000 (10:07 +0000)]
Fix cppcheck operator precedence warning. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360234
91177308-0d34-0410-b5e6-
96231b3b80d8
James Henderson [Wed, 8 May 2019 09:49:35 +0000 (09:49 +0000)]
[llvm-objcopy] Add --prefix-alloc-sections
This patch adds support for --prefix-alloc-sections, which adds a prefix
to every allocated section names.
It adds a prefix after renaming section names by --rename-section as GNU
objcopy does.
Fixes PR41266: https://bugs.llvm.org/show_bug.cgi?id=41266
Differential Revision: https://reviews.llvm.org/D60042
Patch by Seiya Nuta.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360233
91177308-0d34-0410-b5e6-
96231b3b80d8
Florian Hahn [Wed, 8 May 2019 09:09:54 +0000 (09:09 +0000)]
[SCCP] Fix crash when trying to constant-fold terminators multiple times.
If we fold a branch/switch to an unconditional branch to another dead block we
replace the branch with unreachable, to avoid attempting to fold the
unconditional branch.
Reviewers: davide, efriedma, mssimpso, jdoerfert
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D61300
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360232
91177308-0d34-0410-b5e6-
96231b3b80d8
Martin Storsjo [Wed, 8 May 2019 08:37:34 +0000 (08:37 +0000)]
[CMake] Install import libraries
Simplify the cmake logic to install both runtime and import
libraries (treated as ARCHIVE), as the later are needed to link
against llvm.
Patch by Julien Schueller!
Differential Revision: https://reviews.llvm.org/D61425
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360230
91177308-0d34-0410-b5e6-
96231b3b80d8
QingShan Zhang [Wed, 8 May 2019 07:56:59 +0000 (07:56 +0000)]
[NFC][PowerPC] Add test for store combine optimization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360229
91177308-0d34-0410-b5e6-
96231b3b80d8
QingShan Zhang [Wed, 8 May 2019 07:32:12 +0000 (07:32 +0000)]
[CodeGenPrepare] Don't split the store if it is volatile
We shouldn't split the store when it is volatile.
Differential Revision: https://reviews.llvm.org/D61169
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360228
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Wed, 8 May 2019 07:31:05 +0000 (07:31 +0000)]
[llvm-objcopy] - Fix for "Bug 41775 - SymbolTableSection::addSymbol - shadow variable names"
This is a fix for https://bugs.llvm.org/show_bug.cgi?id=41775,
Problem is in the final line:
Size += this->EntrySize;
I checked that we do not actually need it in this place,
since we always call removeSectionReferences which
calls removeSymbols which updates the Size.
But it worth to keep it, that allows to relax the dependencies.
Differential revision: https://reviews.llvm.org/D61636
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360227
91177308-0d34-0410-b5e6-
96231b3b80d8
QingShan Zhang [Wed, 8 May 2019 07:21:37 +0000 (07:21 +0000)]
[NFC] Add a static function to do the endian check
Add a new function to do the endian check, as I will commit another patch later, which will also need the endian check.
Differential Revision: https://reviews.llvm.org/D61236
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360226
91177308-0d34-0410-b5e6-
96231b3b80d8
Mircea Trofin [Wed, 8 May 2019 03:57:25 +0000 (03:57 +0000)]
[llvm] Avoid div by 0 when updating profile weights.
Reviewers: davidxl
Reviewed By: davidxl
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D61661
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360223
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Robertson [Wed, 8 May 2019 02:25:08 +0000 (02:25 +0000)]
[ValueTracking] Improve isKnowNonZero for Ints
Improve isKnownNonZero for integers in order to improve cttz
optimizations.
Differential Revision: https://reviews.llvm.org/D60846
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360222
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Wed, 8 May 2019 02:11:07 +0000 (02:11 +0000)]
[Support] Add error handling to sys::Process::getPageSize().
This patch changes the return type of sys::Process::getPageSize to
Expected<unsigned> to account for the fact that the underlying syscalls used to
obtain the page size may fail (see below).
For clients who use the page size as an optimization only this patch adds a new
method, getPageSizeEstimate, which calls through to getPageSize but discards
any error returned and substitues a "reasonable" page size estimate estimate
instead. All existing LLVM clients are updated to call getPageSizeEstimate
rather than getPageSize.
On Unix, sys::Process::getPageSize is implemented in terms of getpagesize or
sysconf, depending on which macros are set. The sysconf call is documented to
return -1 on failure. On Darwin getpagesize is implemented in terms of sysconf
and may also fail (though the manpage documentation does not mention this).
These failures have been observed in practice when highly restrictive sandbox
permissions have been applied. Without this patch, the result is that
getPageSize returns -1, which wreaks havoc on any subsequent code that was
assuming a sane page size value.
<rdar://problem/
41654857>
Reviewers: dblaikie, echristo
Subscribers: kristina, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D59107
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360221
91177308-0d34-0410-b5e6-
96231b3b80d8
Philip Reames [Tue, 7 May 2019 23:48:42 +0000 (23:48 +0000)]
[Tests] Expand coverage of small memset zero idioms
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360210
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Tue, 7 May 2019 23:06:21 +0000 (23:06 +0000)]
[COFF] Use COFF stubs for extern_weak functions
Summary:
A COFF stub indirects the reference to a symbol through memory. A
.refptr.$sym global variable pointer is created to refer to $sym.
Typically mingw uses these for external global variable declarations,
but we can use them for weak function declarations as well.
Updates the dso_local classification to add a special case for
extern_weak symbols on COFF in both clang and LLVM.
Fixes PR37598
Reviewers: smeenai, mstorsjo
Subscribers: hiraditya, cfe-commits, llvm-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D61615
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360207
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 7 May 2019 22:58:31 +0000 (22:58 +0000)]
[ValueTracking] add logic for known-never-nan with minnum/maxnum
From the LangRef: "Returns NaN only if both operands are NaN."
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360206
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Tue, 7 May 2019 22:56:40 +0000 (22:56 +0000)]
Reapply r360194 "[JITLink] Add support for MachO .alt_entry atoms." with fixes.
This patch modifies MachOAtomGraphBuilder to use setLayoutNext rather than
addEdge, and fixes a bug in the section layout algorithm that could result in
atoms appearing more than once in the section ordering (which resulted in those
atoms being assigned invalid addresses during layout).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360205
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Tue, 7 May 2019 22:40:40 +0000 (22:40 +0000)]
Regenerate test case again after last revert
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360204
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Tue, 7 May 2019 22:35:56 +0000 (22:35 +0000)]
Delete test cases added in r360162 that should have been deleted in r360190
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360203
91177308-0d34-0410-b5e6-
96231b3b80d8
Alina Sbirlea [Tue, 7 May 2019 22:26:52 +0000 (22:26 +0000)]
[MemorySSA] Fix CHECKs in test. [NFC]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360201
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Tue, 7 May 2019 22:19:29 +0000 (22:19 +0000)]
Revert r360194 "[JITLink] Add support for MachO .alt_entry atoms."
The testcase is asserting on some bots - reverting while I investigate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360200
91177308-0d34-0410-b5e6-
96231b3b80d8
Austin Kerbow [Tue, 7 May 2019 22:12:15 +0000 (22:12 +0000)]
[AMDGPU] Check MI bundles for hazards
Summary: GCNHazardRecognizer fails to identify hazards that are in and around bundles. This patch allows the hazard recognizer to consider bundled instructions in both scheduler and hazard recognizer mode. We ignore “bundledness” for the purpose of detecting hazards and examine the instructions individually.
Reviewers: arsenm, msearles, rampitec
Reviewed By: rampitec
Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D61564
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360199
91177308-0d34-0410-b5e6-
96231b3b80d8
Austin Kerbow [Tue, 7 May 2019 22:09:04 +0000 (22:09 +0000)]
[CodeGen] Rename DEBUG_TYPE for default hazard recognizer.
Summary:
The DEBUG_TYPE of the default hazard recognizer should be updated to
match the DEBUG_TYPE of the machine-scheduler pass.
Reviewers: rampitec
Reviewed By: rampitec
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D61359
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360198
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 7 May 2019 21:50:09 +0000 (21:50 +0000)]
[InstSimplify] add tests for minnum/maxnum and NaN; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360197
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Tue, 7 May 2019 21:46:55 +0000 (21:46 +0000)]
[CMake] Detecting python modules should be cached
Summary: This requres exec-ing python, which in a trace I ran of the CMake re-configure time took ~2% of the reconfigure time.
Reviewers: phosek, smeenai, compnerd
Subscribers: mgorny, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D61402
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360196
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Tue, 7 May 2019 21:35:14 +0000 (21:35 +0000)]
[JITLink] Add support for MachO .alt_entry atoms.
The MachO .alt_entry directive is applied to a symbol to indicate that it is
locked (in terms of address layout and liveness) to its predecessor atom. I.e.
it is an alternate entry point, at a fixed offset, for the previous atom.
This patch updates MachOAtomGraphBuilder to check for the .alt_entry flag on
symbols and add a corresponding LayoutNext edge to the atom-graph. It also
updates MachOAtomGraphBuilder_x86_64 to generalize handling of the
X86_64_RELOC_SUBTRACTOR relocation: previously either the minuend or
subtrahend of the subtraction had to be the same as the atom being fixed up,
now it is only necessary for the minuend or subtrahend to be locked (via any
chain of alt_entry directives) to the atom being fixed up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360194
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Devlieghere [Tue, 7 May 2019 21:08:15 +0000 (21:08 +0000)]
Revert "[OpenMP][Clang] Support for target math functions"
This commit appears to be breaking stage-2 builds on GreenDragon. The
OpenMP wrappers for cmath and math.h are copied into the root of the
resource directory and cause a cyclic dependency in module 'Darwin':
Darwin -> std -> Darwin. This blows up when CMake is testing for modules
support and breaks all stage 2 module builds, including the ThinLTO bot
and all LLDB bots.
CMake Error at cmake/modules/HandleLLVMOptions.cmake:497 (message):
LLVM_ENABLE_MODULES is not supported by this compiler
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360192
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Tue, 7 May 2019 20:57:11 +0000 (20:57 +0000)]
revert r360162 as it breaks most of the buildbots
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360190
91177308-0d34-0410-b5e6-
96231b3b80d8
Nikita Popov [Tue, 7 May 2019 20:34:46 +0000 (20:34 +0000)]
[ConstantRange] Simplify makeGNWR implementation; NFC
Compute results in more direct ways, avoid subset intersect
operations. Extract the core code for computing mul nowrap ranges
into separate static functions, so they can be reused.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360189
91177308-0d34-0410-b5e6-
96231b3b80d8
Robert Lougher [Tue, 7 May 2019 19:36:41 +0000 (19:36 +0000)]
[InstCombine] Add new combine to add folding
(X | C1) + C2 --> (X | C1) ^ C1 iff (C1 == -C2)
I verified the correctness using Alive:
https://rise4fun.com/Alive/YNV
This transform enables the following transform that already exists in
instcombine:
(X | Y) ^ Y --> X & ~Y
As a result, the full expected transform is:
(X | C1) + C2 --> X & ~C1 iff (C1 == -C2)
There already exists the transform in the sub case:
(X | Y) - Y --> X & ~Y
However this does not trigger in the case where Y is constant due to an earlier
transform:
X - (-C) --> X + C
With this new add fold, both the add and sub constant cases are handled.
Patch by Chris Dawson.
Differential Revision: https://reviews.llvm.org/D61517
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360185
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 7 May 2019 19:25:34 +0000 (19:25 +0000)]
Make sure that the DAG combiner doesn't merge stores that we explicitly
asked not be greater than preferred vector width for the vectorizer.
Test for both 128 and 256 with a skylake architecture.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360183
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 7 May 2019 18:58:07 +0000 (18:58 +0000)]
[InstCombine] allow sinking fneg operands through an FP min/max
Fundamentally/generally, we should not have to rely on bailouts/crippling of
folds. In this particular case, I think we always recognize the inverted
predicate min/max pattern, so there should not be any loss of optimization.
Codegen looks better because we are eliminating an fneg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360180
91177308-0d34-0410-b5e6-
96231b3b80d8
Don Hinton [Tue, 7 May 2019 18:57:01 +0000 (18:57 +0000)]
[CommandLine] Allow Options to specify multiple OptionCategory's.
Summary:
It's not uncommon for separate components to share common
Options, e.g., it's common for related Passes to share Options in
addition to the Pass specific ones.
With this change, components can use OptionCategory's to simply help
output even if some of the options are shared.
Reviewed By: MaskRay
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D61574
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360179
91177308-0d34-0410-b5e6-
96231b3b80d8
Philip Reames [Tue, 7 May 2019 17:45:52 +0000 (17:45 +0000)]
[Tests] Yet more combination of tests for unordered.atomic memset
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360177
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Tue, 7 May 2019 17:42:38 +0000 (17:42 +0000)]
Debug Info: Support address space attributes on rvalue references.
DWARF5, 2.12 20ff says that
Any debugging information entry representing a pointer or reference
type [may have a DW_AT_address_class attribute].
The existing code (https://reviews.llvm.org/D29670) seems to take a
quite literal interpretation of that wording. I don't see a reason why
an rvalue reference isn't a reference type in the spirit of that
paragraph. This patch allows rvalue references to also have address
spaces.
rdar://problem/
50511483
Differential Revision: https://reviews.llvm.org/D61625
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360176
91177308-0d34-0410-b5e6-
96231b3b80d8
Jinsong Ji [Tue, 7 May 2019 17:29:44 +0000 (17:29 +0000)]
[PowerPC][NFC] Update build-vector-tests.ll using utils/update_llc_test_checks.py
build-vector-tests.ll is a huge testcase, it is hard to maintain: eg:
any fundamental changes might need to update hundreds of lines. We should
leverage the script to maintain it.
This patch simply run utils/update_llc_test_checks.py on it. There
should be no missing test points.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360175
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Tue, 7 May 2019 17:10:27 +0000 (17:10 +0000)]
Guard __builtin_available() with __has_builtin to support older host compilers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360174
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 7 May 2019 17:10:10 +0000 (17:10 +0000)]
Regenerate test to try and fix buildbots
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360173
91177308-0d34-0410-b5e6-
96231b3b80d8
Florian Hahn [Tue, 7 May 2019 16:47:27 +0000 (16:47 +0000)]
[DAGCombiner] Avoid creating large tokenfactors in visitTokenFactor
When simplifying TokenFactors, we potentially iterate over all
operands of a large number of TokenFactors. This causes quadratic
compile times in some cases and the large token factors cause additional
scalability problems elsewhere.
This patch adds some limits to the number of nodes explored for the
cases mentioned above.
Reviewers: niravd, spatel, craig.topper
Reviewed By: niravd
Differential Revision: https://reviews.llvm.org/D61397
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360171
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 7 May 2019 16:25:43 +0000 (16:25 +0000)]
[InstCombine] add tests for FP min/max with negated operands; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360170
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 7 May 2019 15:45:00 +0000 (15:45 +0000)]
Avoid use-after-move warnings by using swap instead. NFCI.
Swap should be as quick in these cases, and leaves the original variables in a known (empty) state.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360164
91177308-0d34-0410-b5e6-
96231b3b80d8
Orlando Cazalet-Hyams [Tue, 7 May 2019 15:37:38 +0000 (15:37 +0000)]
[DebugInfo@O2][LoopVectorize] pr39024: Vectorized code linenos step through loop even after completion
Summary:
Bug: https://bugs.llvm.org/show_bug.cgi?id=39024
The bug reports that a vectorized loop is stepped through 4 times and each step through the loop seemed to show a different path. I found two problems here:
A) An incorrect line number on a preheader block (for.body.preheader) instruction causes a step into the loop before it begins.
B) Instructions in the middle block have different line numbers which give the impression of another iteration.
In this patch I give all of the middle block instructions the line number of the scalar loop latch terminator branch. This seems to provide the smoothest debugging experience because the vectorized loops will always end on this line before dropping into the scalar loop. To solve problem A I have altered llvm::SplitBlockPredecessors to accommodate loop header blocks.
Reviewers: samsonov, vsk, aprantl, probinson, anemet, hfinkel
Reviewed By: hfinkel
Subscribers: bjope, jmellorcrummey, hfinkel, gbedwell, hiraditya, zzheng, llvm-commits
Tags: #llvm, #debug-info
Differential Revision: https://reviews.llvm.org/D60831
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360162
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Tue, 7 May 2019 15:35:43 +0000 (15:35 +0000)]
[JITLink] Fix some copy/paste related typos in a test case.
Several X86_64_RELOC_SUBTRACTOR tests for subtrahend handling were incorrectly
labeled as tests for kinds of minuend handling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360160
91177308-0d34-0410-b5e6-
96231b3b80d8
Keno Fischer [Tue, 7 May 2019 15:28:47 +0000 (15:28 +0000)]
[SCEV] Add explicit representations of umin/smin
Summary:
Currently we express umin as `~umax(~x, ~y)`. However, this becomes
a problem for operands in non-integral pointer spaces, because `~x`
is not something we can compute for `x` non-integral. However, since
comparisons are generally still allowed, we are actually able to
express `umin(x, y)` directly as long as we don't try to express is
as a umax. Support this by adding an explicit umin/smin representation
to SCEV. We do this by factoring the existing getUMax/getSMax functions
into a new function that does all four. The previous two functions were
largely identical.
Reviewed By: sanjoy
Differential Revision: https://reviews.llvm.org/D50167
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360159
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 7 May 2019 14:56:34 +0000 (14:56 +0000)]
Fix local shadow variable warning. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360157
91177308-0d34-0410-b5e6-
96231b3b80d8
Robert Lougher [Tue, 7 May 2019 14:14:29 +0000 (14:14 +0000)]
Precommit tests for or/add transform. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360149
91177308-0d34-0410-b5e6-
96231b3b80d8
Nemanja Ivanovic [Tue, 7 May 2019 13:48:03 +0000 (13:48 +0000)]
[PowerPC] Use the two-constant NR algorithm for refining estimates
The single-constant algorithm produces infinities on a lot of denormal values.
The precision of the two-constant algorithm is actually sufficient across the
range of denormals. We will switch to that algorithm for now to avoid the
infinities on denormals. In the future, we will re-evaluate the algorithm to
find the optimal one for PowerPC.
Differential revision: https://reviews.llvm.org/D60037
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360144
91177308-0d34-0410-b5e6-
96231b3b80d8