summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [ELF][test] Make tests more tolerant to exact symbol addressesFangrui Song2019-09-119-109/+101
| | | | llvm-svn: 371588
* [Debuginfo][Instcombiner] Do not clone dbg.declare.Alexey Lapshin2019-09-112-0/+159
| | | | | | | | | | | | TryToSinkInstruction() has a bug: While updating debug info for sunk instruction, it could clone dbg.declare intrinsic. That is wrong. There could be only one dbg.declare. The fix is to not clone dbg.declare intrinsic and to update it`s arguments, to not to point to sunk instruction. Differential Revision: https://reviews.llvm.org/D67217 llvm-svn: 371587
* [CodeGen] Add alias for cpu_dispatch function with IFunc & Fix resolver ↵Fangrui Song2019-09-1112-86/+125
| | | | | | | | | | | | | | linkage type Multi-versioned functions defined by cpu_dispatch and implemented with IFunc can not be called outside the translation units where they are defined due to lack of symbols. This patch add function aliases for these functions and thus make them visible outside. Differential Revision: https://reviews.llvm.org/D67058 Patch by Senran Zhang llvm-svn: 371586
* [llvm-nm] Fix -DBUILD_SHARED_LIBS=ON builds after D66160/r371576Fangrui Song2019-09-111-0/+1
| | | | llvm-svn: 371585
* clang-misexpect: Profile Guided Validation of Performance Annotations in LLVMPetr Hosek2019-09-1143-26/+1906
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch contains the basic functionality for reporting potentially incorrect usage of __builtin_expect() by comparing the developer's annotation against a collected PGO profile. A more detailed proposal and discussion appears on the CFE-dev mailing list (http://lists.llvm.org/pipermail/cfe-dev/2019-July/062971.html) and a prototype of the initial frontend changes appear here in D65300 We revised the work in D65300 by moving the misexpect check into the LLVM backend, and adding support for IR and sampling based profiles, in addition to frontend instrumentation. We add new misexpect metadata tags to those instructions directly influenced by the llvm.expect intrinsic (branch, switch, and select) when lowering the intrinsics. The misexpect metadata contains information about the expected target of the intrinsic so that we can check against the correct PGO counter when emitting diagnostics, and the compiler's values for the LikelyBranchWeight and UnlikelyBranchWeight. We use these branch weight values to determine when to emit the diagnostic to the user. A future patch should address the comment at the top of LowerExpectIntrisic.cpp to hoist the LikelyBranchWeight and UnlikelyBranchWeight values into a shared space that can be accessed outside of the LowerExpectIntrinsic pass. Once that is done, the misexpect metadata can be updated to be smaller. In the long term, it is possible to reconstruct portions of the misexpect metadata from the existing profile data. However, we have avoided this to keep the code simple, and because some kind of metadata tag will be required to identify which branch/switch/select instructions are influenced by the use of llvm.expect Patch By: paulkirth Differential Revision: https://reviews.llvm.org/D66324 llvm-svn: 371584
* Ah, only skip this for embedded darwin targets.Jason Molenda2019-09-111-1/+1
| | | | llvm-svn: 371583
* Skip a test in TestProcessIO.py when running against ios devices.Jason Molenda2019-09-111-0/+1
| | | | llvm-svn: 371582
* Emit -Wmicrosoft-enum-value warning instead of error in MS ABIReid Kleckner2019-09-112-11/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The first NFC change is to replace a getCXXABI().isMicrosoft() check with getTriple().isWindowsMSVCEnvironment(). This code takes effect in non-C++ compilations, so it doesn't make sense to check the C++ ABI. In the MS ABI, enums are always considered to be "complete" because the underlying type of an unfixed enum will always be 'int'. This behavior was moved from -fms-compatibility to MS ABI back in r249656. The second change is functional, and it downgrades an error to a warning when the MS ABI is used rather than only under -fms-compatibility. The reasoning is that it's unreasonable for the following code to reject the following code for all MS ABI targets with -fno-ms-compatibility: enum Foo { Foo_Val = 0xDEADBEEF }; This is valid code for any other target, but in the MS ABI, Foo_Val just happens to be negative. With this change, clang emits a -Wmicrosoft-enum-value warning on this code, but compiles it without error. Fixes PR38478 Reviewers: hans, rsmith, STL_MSFT Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D67304 llvm-svn: 371581
* Revert "llvm-reduce: Add pass to reduce parameters"David Blaikie2019-09-116-187/+0
| | | | | | | | Looks to be failing on asan buildbots This reverts commit r371567. llvm-svn: 371580
* Revert "Adding support for overriding LLVM_ENABLE_RUNTIMES for runtimes builds."Petr Hosek2019-09-111-4/+1
| | | | | | | This reverts commit r371566: this doesn't correctly handle the case where LLVM_ENABLE_RUNTIMES contains a list of values. llvm-svn: 371579
* [clang-scan-deps][NFC] Fix tests - prevent FileCheck matching test dir pathJan Korous2019-09-1113-34/+34
| | | | | | Differential Revision: https://reviews.llvm.org/D67379 llvm-svn: 371578
* [Object][TextAPI] NFC, fix tapi lit testsCyndy Ishida2019-09-112-6/+6
| | | | | | FileCheck command had wrong casing, which works fine on macOS, repairs the linux build bots llvm-svn: 371577
* [llvm-nm] Add tapi file supportCyndy Ishida2019-09-1115-20/+298
| | | | | | | | | | | | | | | | | | Summary: This commit is the final one for adding tapi support to the llvm-nm implementation. This commit also has accompanying tests the additions to lib/Object Reviewers: ributzka, steven_wu Reviewed By: ributzka Subscribers: hiraditya, plotfi, dexonsmith, rupprecht, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66160 llvm-svn: 371576
* Remove xfail i386 NetBSD mark in vptr-non-unique-typeinfo.cppKamil Rytarowski2019-09-101-1/+0
| | | | | | This test passes now. llvm-svn: 371575
* Remove xfail NetBSD mark from ignored-interceptors-mmap.cppKamil Rytarowski2019-09-101-1/+0
| | | | | | This test now passes. llvm-svn: 371574
* [MemorySSA] MemorySSA should not model debuginfo, and need not update it.Alina Sbirlea2019-09-101-4/+1
| | | | | | | | Reverts the change in r371084, but keeps the test. After r371565, debuginfo cannot be modelled in MemorySSA, even with a non-standard AA pipeline. llvm-svn: 371573
* [GlobalISel] When a tail call is emitted in a block, stop translating itJessica Paquette2019-09-104-12/+50
| | | | | | | | | | | | | | | | | | | | | | | | This fixes a crash in tail call translation caused by assume and lifetime_end intrinsics. It's possible to have instructions other than a return after a tail call which will still have `Analysis::isInTailCallPosition` return true. (Namely, lifetime_end and assume intrinsics.) If we emit a tail call, we should stop translating instructions in the block. Otherwise, we can end up emitting an extra return, or dead instructions in general. This makes the verifier unhappy, and is generally unfortunate for codegen. This also removes the code from AArch64CallLowering that checks if we have a tail call when lowering a return. This is covered by the new code now. Also update call-translator-tail-call.ll to show that we now properly tail call in the presence of lifetime_end and assume. Differential Revision: https://reviews.llvm.org/D67415 llvm-svn: 371572
* [clang-format] Apply BAS_AlwaysBreak to C++11 braced listsOwen Pan2019-09-102-1/+13
| | | | | | | | See PR18455. Differential Revision: https://reviews.llvm.org/D67395 llvm-svn: 371571
* [AArch64][GlobalISel] Support sibling calls with mismatched calling conventionsJessica Paquette2019-09-106-23/+144
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for sibcalling calls whose calling convention differs from the caller's. - Port over `CCState::resultsCombatible` from CallingConvLower.cpp into CallLowering. This is used to verify that the way the caller and callee CC handle incoming arguments matches up. - Add `CallLowering::analyzeCallResult`. This is basically a port of `CCState::AnalyzeCallResult`, but using `ArgInfo` rather than `ISD::InputArg`. - Add `AArch64CallLowering::doCallerAndCalleePassArgsTheSameWay`. This checks that the calling conventions are compatible, and that the caller and callee preserve the same registers. For testing: - Update call-translator-tail-call.ll to show that we can now handle this. - Add a GISel line to tailcall-ccmismatch.ll to show that we will not tail call when the regmasks don't line up. Differential Revision: https://reviews.llvm.org/D67361 llvm-svn: 371570
* Update ReleaseNotes: add enabling of MemorySSA.Alina Sbirlea2019-09-101-0/+1
| | | | llvm-svn: 371569
* Reland "Change the X86 datalayout to add three address spacesAmy Huang2019-09-10522-541/+566
| | | | | | | | | | for 32 bit signed, 32 bit unsigned, and 64 bit pointers." This reverts 57076d3199fc2b0af4a3736b7749dd5462cacda5. Original review at https://reviews.llvm.org/D64931. Review for added fix at https://reviews.llvm.org/D66843. llvm-svn: 371568
* llvm-reduce: Add pass to reduce parametersDavid Blaikie2019-09-106-0/+187
| | | | | | | | Patch by Diego Treviño! Differential Revision: https://reviews.llvm.org/D65479 llvm-svn: 371567
* Adding support for overriding LLVM_ENABLE_RUNTIMES for runtimes builds.Puyan Lotfi2019-09-101-1/+4
| | | | | | | | | | | | On some platforms, certain runtimes are not supported. For runtimes builds of those platforms it would be nice if we could disable certain runtimes (ie libunwind on Windows). Differential Revision: https://reviews.llvm.org/D67195 llvm-svn: 371566
* [MemorySSA] Do not create memoryaccesses for debug info intrinsics.Alina Sbirlea2019-09-102-2/+63
| | | | | | | | | | | | | | | | Summary: Do not model debuginfo intrinsics in MemorySSA. Regularly these are non-memory modifying instructions. With -disable-basicaa, they were being modelled as Defs. Reviewers: george.burgess.iv Subscribers: aprantl, Prazek, sanjoy.google, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D67307 llvm-svn: 371565
* llvm-reduce: Remove some unused headers/more narrowly include themDavid Blaikie2019-09-104-9/+9
| | | | llvm-svn: 371564
* llvm-remove: Remove "using namespace" in header.David Blaikie2019-09-104-5/+10
| | | | llvm-svn: 371563
* llvm-reduce: Add pass to reduce MetadataDavid Blaikie2019-09-106-2/+197
| | | | | | | | Patch by Diego Treviño! Differential Revision: https://reviews.llvm.org/D65026 llvm-svn: 371562
* Move LLVM_ENABLE_ABI_BREAKING_CHECKS variables to their own fileEric Christopher2019-09-104-15/+26
| | | | | | | | | | | | | so that you don't have to link Error.o and all of its dependencies. In more detail: global initializers in Error.o can't be elided with -ffunction-sections/-gc-sections since they always need to be run causing a fairly significant binary bloat if all you want is the ABI breaking checks code. Differential Revision: https://reviews.llvm.org/D67387 llvm-svn: 371561
* Fix a thinko in handling the QSetLogging packet.Jim Ingham2019-09-101-3/+3
| | | | | | | The comparison against LOG_MEMORY shortcut all the LOG_MEMORY_* log channels. It has to come last. llvm-svn: 371560
* Actually reorder not and env in crash-recovery-modules.mReid Kleckner2019-09-101-2/+2
| | | | llvm-svn: 371559
* [Loads] Move generic code out of vectorizer into a location it might be ↵Philip Reames2019-09-103-51/+63
| | | | | | reused [NFC] llvm-svn: 371558
* When evaluating a __builtin_constant_p conditional, always enterRichard Smith2019-09-102-63/+44
| | | | | | | | | | | constant-folding mode regardless of the original evaluation mode. In order for this to be correct, we need to track whether we're checking for a potential constant expression or checking for undefined behavior separately from the evaluation mode enum, since we don't want to clobber those states when entering constant-folding mode. llvm-svn: 371557
* [ValueTracking] Factor our common speculation suppression logic [NFC]Philip Reames2019-09-103-21/+20
| | | | | | Expose a utility function so that all places which want to suppress speculation (when otherwise legal) due to ordering and/or sanitizer interaction can do so. llvm-svn: 371556
* llvm-reduce: Simplify testing using -implicit-check-notDavid Blaikie2019-09-103-11/+4
| | | | | | | Also fix llvm-reduce to use the specified output file name directly, without appending '.ll' to the name. llvm-svn: 371555
* [mips] Allow PT_LOAD to have overlapping p_offset ranges on EM_MIPSSimon Atanasyan2019-09-102-23/+22
| | | | | | | | Port the D64906 <https://reviews.llvm.org/D64906> technique to MIPS. Fix PR33131 llvm-svn: 371554
* [OPENMP5.0]Allow teams directive outside of the target directives.Alexey Bataev2019-09-104-3/+49
| | | | | | | According to OpenMP 5.0, teams directives are allowed not only in the target context, but also in the implicit parallel regions. llvm-svn: 371553
* Re-land Remove REQUIRES:shell from tests that pass for me on WindowsReid Kleckner2019-09-1025-57/+31
| | | | | | | | | | | | This reverts r371497 (git commit 3d7e9ab7b9f8c53aa41420c54970f0fb421004a2) Reorder `not` with `env` in these two tests so they pass: Driver/rewrite-map-in-diagnostics.c Index/crash-recovery-modules.m. This will not be necessary after D66531 lands. llvm-svn: 371552
* [x86] add test for false dependency with AVX; NFCSanjay Patel2019-09-101-0/+15
| | | | | | Goes with D67363 llvm-svn: 371551
* [NFC][InstCombine] rewrite test added in r371537 to use non-null pointer insteadRoman Lebedev2019-09-101-27/+91
| | | | | | | | I only want to ensure that %offset is non-zero there, it doesn't matter how that info is conveyed. As filed in PR43267, the assumption way does not work. llvm-svn: 371550
* Fix for PR43175: compiler crash when trying to emit noncapturableAlexey Bataev2019-09-102-0/+15
| | | | | | | | | | | | | | constant. If the constexpr variable is partially initialized, the initializer can be emitted as the structure, not as an array, because of some early optimizations. The llvm variable gets the type from this constant and, thus, gets the type which is pointer to struct rather than pointer to an array. We need to convert this type to be truely array, otherwise it may lead to the compiler crash when trying to emit array subscript expression. llvm-svn: 371548
* [X86] Updated target specific selection dag code to conservatively check for ↵Philip Reames2019-09-103-20/+20
| | | | | | | | | | | | | | isAtomic in addition to isVolatile See D66309 for context. This is the first sweep of x86 target specific code to add isAtomic bailouts where appropriate. The intention here is to have the switch from AtomicSDNode to LoadSDNode/StoreSDNode be close to NFC; that is, I'm not looking to allow additional optimizations at this time. Sorry for the lack of tests. As discussed in the review, most of these are vector tests (for which atomicity is not well defined) and I couldn't figure out to exercise the anyextend cases which aren't vector specific. Differential Revision: https://reviews.llvm.org/D66322 llvm-svn: 371547
* [NFC][InstSimplify] rewrite test added in r371537 to use non-null pointer ↵Roman Lebedev2019-09-101-43/+53
| | | | | | | | | | instead I only want to ensure that %offset is non-zero there, it doesn't matter how that info is conveyed. As filed in PR43267, the assumption way does not work. llvm-svn: 371546
* [lldbtest] Add an "expected_cmd_failure" option to the filecheck helperVedant Kumar2019-09-101-1/+5
| | | | llvm-svn: 371544
* [Function] Factor out GetCallEdgeForReturnAddress, NFCVedant Kumar2019-09-103-11/+23
| | | | | | | Finding the call edge in a function which corresponds to a particular return address is a generic/useful operation. llvm-svn: 371543
* GlobalISel/TableGen: Handle REG_SEQUENCE patternsMatt Arsenault2019-09-105-36/+191
| | | | | | | | The scalar f64 patterns don't work yet because they fail on multiple results from the unused implicit def of scc in the result bit operation. llvm-svn: 371542
* [BPI] Adjust the probability for floating point unordered comparisonGuozhi Wei2019-09-103-3/+57
| | | | | | | | Since NaN is very rare in normal programs, so the probability for floating point unordered comparison should be extremely small. Current probability is 3/8, it is too large, this patch changes it to a tiny number. Differential Revision: https://reviews.llvm.org/D65303 llvm-svn: 371541
* AMDGPU/GlobalISel: Select G_FABS/G_FNEGMatt Arsenault2019-09-1010-370/+1037
| | | | | | | | | | | f64 doesn't work yet because tablegen currently doesn't handlde REG_SEQUENCE. This does regress some multi use VALU fneg cases since now the immediate remains in an SGPR, and more moves are used for legalizing the xor. This is a SIFixSGPRCopies deficiency. llvm-svn: 371540
* AMDGPU/GlobalISel: Select cvt pk intrinsicsMatt Arsenault2019-09-107-40/+347
| | | | llvm-svn: 371539
* AMDGPU/GlobalISel: Select llvm.amdgcn.sffbhMatt Arsenault2019-09-103-2/+68
| | | | llvm-svn: 371538
* [NFC][InstCombine][InstSimplify] PR43251 - and some patterns with offset != 0Roman Lebedev2019-09-102-1/+141
| | | | | | https://rise4fun.com/Alive/21b llvm-svn: 371537
OpenPOWER on IntegriCloud