summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [MIPS GlobalISel] Fix -Wunused-variable in -DLLVM_ENABLE_ASSERTIONS=off ↵Fangrui Song2019-11-011-0/+1
| | | | builds after D69663
* Illustrate a redirector using the example of round function from math.h.Siva Chandra Reddy2019-11-0111-5/+247
| | | | | | | | | | | | | | | | | | | | | Setup demonstrated in this patch is only for ELF-ish platforms. Also note: 1. Use of redirectors is a temporary scheme. They will be removed once LLVM-libc has implementations for the redirected functions. 2. Redirectors are optional. One can choose to not include them in the LLVM-libc build for their platform. 3. Even with redirectors used, we want to link to the system libc dynamically. Reviewers: dlj, hfinkel, jakehehrlich, phosek, stanshebs, theraven, alexshap Subscribers: mgorny, libc-commits Tags: #libc-project Differential Revision: https://reviews.llvm.org/D69020
* [X86][AVX] Add support for and/or scalar bool reduction with AVX512 mask ↵Simon Pilgrim2019-11-012-34/+24
| | | | | | registers combineBitcastvxi1 only handles bitcast->MOVMSK combines, with mask registers we use BITCAST directly.
* [dsymutil] Add DW_TAG_common_block to dieNeedsChildrenToBeMeaningfulJonas Devlieghere2019-11-011-3/+4
| | | | | | | | Ensure we walk the children of common blocks when deciding what DIEs to keep. Otherwise we might incorrectly discard them leading to missing variables in the linked debug info. This also sorts the list of DW_TAGs alphabetically.
* Add MemTagSanitizer documentation.Evgenii Stepanov2019-11-012-0/+103
| | | | | | | | | | | | Summary: A lot of this is work in progress... Reviewers: kcc, pcc Subscribers: cryptoad, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69289
* [WebAssembly] Add experimental SIMD dot product instructionThomas Lively2019-11-017-0/+38
| | | | | | | | | | | | | | | | | | | Summary: This instruction is not merged to the spec proposal, but we need it to be implemented in the toolchain to experiment with it. It is available only on an opt-in basis through a clang builtin. Defined in https://github.com/WebAssembly/simd/pull/127. Depends on D69696. Reviewers: aheejin Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D69697
* [LV] Move interleave_short_tc.ll into the X86 directory to hopefully make ↵Craig Topper2019-11-011-0/+0
| | | | fix non-X86 bots.
* Reland "[WebAssembly] Expand setcc of v2i64"Thomas Lively2019-11-013-0/+181
| | | | | | | | This reverts commit e5cae5692b5899631b5bfe5c23234deb5efda10c, which reverted 11850a6305c5778b180243eb06aefe86762dd4ce. The original revert was done because of breakage that was actually in a separate commit, 2ab1b8c1ec452fb743f6cc5051e75a01039cabfe, which was also reverted and has since been fixed and relanded.
* [Support] Use /proc/self/exe for GNU Hurdkristina2019-11-011-1/+1
| | | | | | | | | Use `/proc/self/exe` to get the current executable path on GNU Hurd. Patch by sthibaul (Samuel Thibault) Differential Revision: https://reviews.llvm.org/D69683
* [X86] isFNEG - use switch() instead of if-else tree. NFCI.Simon Pilgrim2019-11-011-33/+36
| | | | In a future patch this will avoid some checks which don't need to be done for some opcodes.
* Disable exceptions in libfuzzer's copy of libcxxabi.Evgenii Stepanov2019-11-011-0/+1
| | | | | External project configuration for libcxxabi now has exceptions on by default, but this is not needed for libfuzzer.
* Revert "[LLD][ThinLTO] Handle GUID collision in import global processing"Teresa Johnson2019-11-013-40/+5
| | | | | | | This reverts commit cc0b9647b76178bc3869bbfff80535ad86366472. The commit is causing a failure in internal testing. Will recommit with a fix later.
* [X86] Fix -DBUILD_SHARED_LIBS=on builds after ↵Fangrui Song2019-11-011-0/+2
| | | | | | | | | | | | | | | | | | D69568/llvmorg-10-init-8877-g3a399c09878 In -DBUILD_SHARED_LIBS=on builds, a component must specify its direct dependencies to satisfy -Wl,-z,defs (added by llvm/modules/HandleLLVMOptions.cmake). Core is a direct dependency via transitive header inclusion: ld.lld: error: undefined symbol: llvm::LLVMContext::LLVMContext() >>> referenced by MachineSizeOptsTest.cpp >>> unittests/Target/X86/CMakeFiles/X86Tests.dir/MachineSizeOptsTest.cpp.o:(testing::internal::TestFactoryImpl<(anonymous namespace)::MachineSizeOptsTest_Test_Test>::CreateTest()) MC is a direct dependency via transitive header inclusion: ld.lld: error: undefined symbol: llvm::MCTargetOptions::MCTargetOptions() >>> referenced by MachineSizeOptsTest.cpp >>> unittests/Target/X86/CMakeFiles/X86Tests.dir/MachineSizeOptsTest.cpp.o:((anonymous namespace)::MachineSizeOptsTest::SetUp())
* [Utils] Hide the default behavior change of D68819 under a flagJohannes Doerfert2019-11-013-5/+5
| | | | | | With D69701, the options used when running the script on a file will be recorded and reused on a rerun. This allows us to hide new features behind flags, starting with the "define" that was introduced in D68819.
* Remove unnecessary unit test dependencies.Hiroshi Yamauchi2019-11-011-4/+0
| | | | | | | | | | | | Summary: This is to address comment on D69409. Reviewers: davidxl, thakis Subscribers: mgorny, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69568
* llvm-config: emit the C++ standard flag into CXXFLAGSSaleem Abdulrasool2019-11-011-4/+3
| | | | | | | This recovers the now "missing" flag as this is controlled by CMake rather than injected into the user defined flags list. This is primarily needed by LDC and other out-of-tree users which do not correctly setup the C++ flags.
* [InstCombine] regenerate test checks; NFCSanjay Patel2019-11-013-186/+162
| | | | Avoid subsequent test noise from improved CHECK-LABEL matching.
* Revert "[AArch64][MachineOutliner] Return address signing for outlined ↵Oliver Stannard2019-11-0110-966/+7
| | | | | | | | | | functions" This is causing faults when an instruction which modifies SP is outlined, causing the PAC and AUT instructions to not match. This reverts commits 70caa1fc30c392974df3bccd9959765dae1779f6 and 55314d323738e4a8c1890b6a6e5064e7f4e0da1c.
* [libTooling] Add Stencil constructor.Yitzhak Mandelbaum2019-11-011-0/+7
| | | | | | | | | | | | | | | | Summary: Adds a constructor that takes a vector with which to initialize the `Parts` field and a corresponding free function that forwards to the constructor. These definitions are needed to assist in transitioning away from `Stencil` as a class to defining it as a type alias. Reviewers: ilya-biryukov Subscribers: cfe-commits, gribozavr Tags: #clang Differential Revision: https://reviews.llvm.org/D69632
* [libomptarget] Implement target_impl for amdgcnJonChesterfield2019-11-013-0/+151
| | | | | | | | | | | | | | | | | | | | Summary: [libomptarget] Implement target_impl for amdgcn Smallest atomic addition for a new target. Implements enough of the amdgcn specific code that some of the source files under nvptx/src could be compiled, without modification, to run on amdgcn. This foreshadows a work in progress patch to move said source out of nvptx/src. Patch based on fork at https://github.com/ROCm-Developer-Tools/llvm-project Reviewers: ABataev, jdoerfert, grokos, ronlieb Subscribers: jvesely, jfb, openmp-commits Tags: #openmp Differential Revision: https://reviews.llvm.org/D69718
* [LDV][RAGreedy] Inform LiveDebugVariables about new VRegs added by InlineSpillerBjorn Pettersson2019-11-013-17/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Make sure RAGreedy informs LiveDebugVariables about new VRegs that is introduced at spill by InlineSpiller. Consider this example LDV: !"var" [48r;128r):0 Loc0=%2 48B %2 = ... ... 128B %7 = ADD %2, ... If %2 is spilled the InlineSpiller will insert spill/reload instructions and introduces some new vregs. So we get 48B %4 = ... 56B spill %4 ... 120B reload %5 128B %3 = ADD %5, ... In the past we did not inform LDV about this, and when reintroducing DBG_VALUE instruction LDV still got information that "var" had the location of the spilled register %2 for the interval [48r;128r). The result was bad, since we mapped "var" to the spill slot even before the spill happened: %4 = ... DBG_VALUE %spill.0, !"var" spill %4 to %spill.0 ... reload %5 %3 = ADD %5, ... This patch will inform LDV about the interval split introduced due to spilling. So the location map in LDV will become !"var" [48r;56r):1 [56r;120r):0 [120r;128r):2 Loc0=%2 Loc1=%4 Loc2=%5 And when inserting DBG_VALUE instructions we get %4 = ... DBG_VALUE %4, !"var" spill %4 to %spill.0 DBG_VALUE %spill.0, !"var" ... reload %5 DBG_VALUE %5, !"var" %3 = ADD %5, ... Fixes: https://bugs.llvm.org/show_bug.cgi?id=38899 Reviewers: jmorse, vsk, aprantl Reviewed By: jmorse Subscribers: dstenb, wuzish, MatzeB, qcolombet, nemanjai, hiraditya, jsji, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69584
* gn build: Merge d36a0333102LLVM GN Syncbot2019-11-011-0/+1
|
* [clang-tidy] New checker performance-trivially-destructible-checkAnton Bikineev2019-11-0111-1/+254
| | | | | | | | | | | | | Checks for types which can be made trivially-destructible by removing out-of-line defaulted destructor declarations. The check is motivated by the work on C++ garbage collector in Blink (rendering engine for Chrome), which strives to minimize destructors and improve runtime of sweeping phase. In the entire chromium codebase the check hits over 2000 times. Differential Revision: https://reviews.llvm.org/D69435
* [AArch64] Output the pseudo SPACE in asm and object filesMomchil Velikov2019-11-013-2/+28
| | | | | | | | | | | | | | | | Summary: It outputs nothing, but is useful for writing tests, checking asm output. Reviewers: t.p.northover, ostannard, tellenbach Reviewed By: tellenbach Subscribers: tellenbach, kristof.beyls, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69185 Change-Id: I6b58310e9e5632f0976d2000ce975ee28df90ebe
* [Object] Remove extra space in error messageJames Henderson2019-11-011-1/+1
| | | | Previously this message had a double space in it.
* [Dexter] Continue sprinking no-location fixesJeremy Morse2019-11-011-1/+1
| | | | | | | | | Example failure: http://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake/3255/testReport/junit/debuginfo-tests/dexter-tests/asan_c/ The tests themselves seem to be working, it's just unexplored paths within dexter that are flaking out.
* [OpenCL] Support -fdeclare-opencl-builtins in C++ modeSven van Haastregt2019-11-012-5/+10
| | | | | | | Support for C++ mode was accidentally lacking due to not checking the OpenCLCPlusPlus LangOpts version. Differential Revision: https://reviews.llvm.org/D69233
* [LIBOMPTARGET]Call GetLaneId function, do not use its address in debugAlexey Bataev2019-11-011-2/+2
| | | | log functions.
* [Dexter] Account for another no-lineno scenarioJeremy Morse2019-11-011-1/+2
| | | | | This is another part of Dexter that had never seen a missing source location before, now newly turning up on Darwin.
* [Dexter] Cope better with empty source locationsJeremy Morse2019-11-011-0/+2
| | | | | | When running a program, Dexter single steps if it's in one of the source files under test, or free-runs if it isn't. Handle the circumstance where the current source file simply isn't known.
* [SLP] avoid 'tmp' value name conflict with auto-generated CHECK script; NFCSanjay Patel2019-11-011-23/+23
| | | | | | | | | The script uses 'TMP#' as its substitute for nameless values, so if a test already contains 'tmp#' *named* values, then there could be trouble. We should probably just fix the script to avoid this problem going forward, but it's easy enough to change a test too (and explicitly naming variables 'tmp' is always a sad choice).
* [SLP] avoid 'tmp' value name conflict with auto-generated CHECK script; NFCSanjay Patel2019-11-011-50/+50
| | | | | | | | | The script uses 'TMP#' as its substitute for nameless values, so if a test already contains 'tmp#' *named* values, then there could be trouble. We should probably just fix the script to avoid this problem going forward, but it's easy enough to change a test too (and explicitly naming variables 'tmp' is always a sad choice).
* [SLP] avoid 'tmp' value name conflict with auto-generated CHECK script; NFCSanjay Patel2019-11-011-88/+87
| | | | | | | | | The script uses 'TMP#' as its substitute for nameless values, so if a test already contains 'tmp#' *named* values, then there could be trouble. We should probably just fix the script to avoid this problem going forward, but it's easy enough to change a test too (and explicitly naming variables 'tmp' is always a sad choice).
* Unmask dexter debuginfo tests on DarwinJeremy Morse2019-11-018-8/+16
| | | | | | | | | | These tests almost certainly work on Darwin anyway, I just wanted to keep things in a fixed, working configuration, while pushing Dexter up. I've left Windows unsupported as the dexter command line will need further adjustment to run dbgeng. This can be abstracted through the %dexter substitution, but is a task for another time.
* [libcxx] Disable -Wconstant-evaluated for testsuiteDávid Bolvanský2019-11-011-0/+1
| | | | | | | | | | Reviewers: EricWF Subscribers: christof, ldionne, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D69708
* Fix a brain-fail with debuginfo-tests/dexter internal testsJeremy Morse2019-11-0129-40/+40
| | | | | | | | | | | | I baked the "test" subcommand into the %dexter substituion, as that's what all of the dexter tests use. However I forgot about the internal tests for whether dexters features are working. Install a %dexter_base command to allow those tests to call dexter.py directly, and un-xfail the tests on darwin. Update too the list of paths the unittests shouldn't try and cover, as it tries to load dbgeng on unix machines. Ideally we wouldn't be using this method of test discovery in the future.
* [MIPS GlobalISel] Improve reg bank handling in MipsInstructionSelectorPetar Avramovic2019-11-011-58/+70
| | | | | | | | | | Introduce helper methods and refactor pieces of code related to register banks in MipsInstructionSelector. Add a few detailed asserts in order to get a better overview of LLT, register bank combinations that are supported at the moment and reduce need to look at other files. Differential Revision: https://reviews.llvm.org/D69663
* [LegacyPM] Fix pass structure dumpingevgeny2019-11-016-11/+44
| | | | | | | | If module pass uses on-demand function analyses then structure is being displayed incorrectly because FunctionPassManagerImpl can't dump contained FPPassManager instances. Differential revision: https://reviews.llvm.org/D69315
* [NFC][llvm-readobj] Split getSectionIndexName function into twoJames Henderson2019-11-012-72/+81
| | | | | | | | | | | | | | | | | | | getSectionIndexName was trying to fetch two things at once, which led to a somewhat tricky to understand interface involving passing output parameters in, and also made it hard to return Errors further up the stack. This change is in preparation for changing the error handling. Additionally, update a related test now that yaml2obj supports SHT_SYMTAB_SHNDX properly (see d3963051c490), and add missing LLVM-style coverage for symbols with shndx SHN_XINDEX. This test (after fixing) caught a mistake in my first attempt at this patch, hence I'm including it as part of this patch. Reviewed by: grimar, MaskRay Differential Revision: https://reviews.llvm.org/D69670
* [NFC][llvm-readobj] Pull common code into a helperJames Henderson2019-11-011-18/+13
| | | | | | | | This will make planned changes to this code easier to make. Reviewed by: MaskRay, grimar Differential Revision: https://reviews.llvm.org/D69669
* [AArch64][SVE] Implement several floating-point arithmetic intrinsicsKerry McLaughlin2019-11-014-27/+618
| | | | | | | | | | | | | | | | | | | Summary: Adds intrinsics for the following: - fabd, fadd, fsub & fsubr - fmul, fmulx, fdiv & fdivr - fmax, fmaxnm, fmin & fminnm - fscale & ftsmul Reviewers: huntergr, sdesmalen, dancgr Reviewed By: sdesmalen Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, cameron.mcinally, cfe-commits, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69657
* [GlobalISel] Match table opt: fix a bug in matching num of operandsRoman Tereshin2019-11-012-2/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If there is a dag node with a variable number of operands that has at least N operands (for some non-negative N), and multiple patterns with that node with different number of operands, we would drop the number of operands check in patterns with N operands, presumably because it's guaranteed in such case that none of the per-operand checks will access the operand list out-of-bounds. Except semantically the check is about having exactly N operands, not at least N operands, and a backend might rely on it to disambiguate different patterns. In this patch we change the condition on emitting the number of operands check from "the instruction is not guaranteed to have at least as many operands as are checked by the pattern being matched" to "the instruction is not guaranteed to have a specific number of operands". We're relying (still) on the rest of the CodeGenPatterns mechanics to validate that the pattern itself doesn't try to access more operands than there is in the instruction in cases when the instruction does have fixed number of operands, and on the machine verifier to validate at runtime that particular MIs like that satisfy the constraint as well. Reviewers: dsanders, qcolombet Reviewed By: qcolombet Subscribers: arsenm, rovka, Petar.Avramovic, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69653
* [compiler-rt] [profile] Fix building for MinGW after d889d1efefe9fMartin Storsjö2019-11-011-0/+1
| | | | | | | | This commit added use of a Windows API in InstrProfilingPort.h. When _MSC_VER is defined (for MSVC), windows.h is already included earlier in the same header (for atomics), but MinGW, the gcc atomics builtins are used instead. Therefore explicitly include windows.h here, where the API is used.
* AMDGPU: Add default denormal mode to MachineFunctionInfoMatt Arsenault2019-11-015-6/+60
| | | | | | The default FP mode should really be a property of a specific function, and not a subtarget. Introduce the necessary fields to the SIMachineFunctionInfo to help move towards this goal.
* [X86] Reland: Enable YMM memcmp with AVX1David Zarzycki2019-11-014-185/+201
| | | | | | | | | | Update TargetTransformInfo to allow AVX1 to use YMM registers for memcmp. This is a follow up to D68632 which enabled XOR compares which made this possible. This also updates the memcmp-optsize.ll test unlike the first patch. https://reviews.llvm.org/D69658
* [utils] Reflow asm check generation to tolerate blank linesSimon Atanasyan2019-11-013-5/+22
| | | | | | | | | | | | | | This change introduces two fixes. The second fix allows to generate a test to check the first fix. - Output `CHECK-EMPTY` prefix for an empty line in ASM output. Before that fix `update_llc_test_checks.py` incorrectly emits `CHECK-NEXT: <space>` prefix. - Fix the `ASM_FUNCTION_MIPS_RE` regex to stop on a real function epilogue not on an inline assembler prologue and include inline assembler code into a test. Differential Revision: https://reviews.llvm.org/D47192
* DAG: Add DAG argument to isFPExtFoldableMatt Arsenault2019-10-314-18/+34
| | | | | For AMDGPU this is dependent on the FP mode, which should eventually not be a property of the subtarget.
* [WebAssembly] SIMD integer min and max instructionsThomas Lively2019-10-317-0/+326
| | | | | | | | | | | | | | | | | | | | | | Summary: Introduces a clang builtins and LLVM intrinsics representing integer min/max instructions. These instructions have not been merged to the SIMD spec proposal yet, so they are currently opt-in only via builtins and not produced by general pattern matching. If these instructions are accepted into the spec proposal the builtins and intrinsics will be replaced with normal pattern matching. Defined in https://github.com/WebAssembly/simd/pull/27. Reviewers: aheejin Reviewed By: aheejin Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D69696
* Fix update_mir_test_checks after 3598b8100Matt Arsenault2019-10-311-1/+1
|
* clang: Fix assert on void pointer arithmetic with address_spaceMatt Arsenault2019-10-312-5/+19
| | | | | This attempted to always use the default address space void pointer type instead of preserving the source address space.
OpenPOWER on IntegriCloud