summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Driver tests: set `--sysroot=""` to support clang with `DEFAULT_SYSROOT`Serge Pavlov2019-09-285-21/+39
| | | | | | | | | | | | When testing clang that has been compiled with `-DDEFAULT_SYSROOT` set to some path, some tests would fail. Override sysroot to be empty string for the tests to succeed when clang is configured with `DEFAULT_SYSROOT`. Differential Revision: https://reviews.llvm.org/D66834 Patch by Sergej Jaskiewicz <jaskiewiczs@icloud.com>. llvm-svn: 373147
* Revert "[LLDB] Use the llvm microsoft demangler instead of the windows ↵Martin Storsjo2019-09-281-3/+41
| | | | | | | | | dbghelp api. NFC." This reverts SVN r373144, as it changed the demangled output a little, see http://lab.llvm.org:8011/builders/lldb-x64-windows-ninja/builds/9306. llvm-svn: 373146
* [LLD] [test] Add a forgotten comment. NFC.Martin Storsjo2019-09-281-0/+2
| | | | | | | This was requested in https://reviews.llvm.org/D68014, but I forgot to add it before pushing the commit. llvm-svn: 373145
* [LLDB] Use the llvm microsoft demangler instead of the windows dbghelp api. NFC.Martin Storsjo2019-09-281-41/+3
| | | | | | | | | If there's any testcases that only do demangling (I didn't find any), they could be made available for all platforms now. Differential Revision: https://reviews.llvm.org/D68134 llvm-svn: 373144
* [GlobalISel Enable memcpy inlining with optsize.Amara Emerson2019-09-283-2/+94
| | | | | | We should be disabling inline for minsize, not optsize. llvm-svn: 373143
* [TimeProfiler] Fix "OptModule" section and add new "Backend" sectionsAnton Afanasyev2019-09-282-1/+3
| | | | | | | Remove unnecessary "OptModule" section. Add "PerFunctionPasses", "PerModulePasses" and "CodeGenPasses" sections under "Backend" section. llvm-svn: 373142
* Add an operand to memory intrinsics to denote the "tail" marker.Amara Emerson2019-09-2814-70/+168
| | | | | | | | | | | | | | We need to propagate this information from the IR in order to be able to safely do tail call optimizations on the intrinsics during legalization. Assuming it's safe to do tail call opt without checking for the marker isn't safe because the mem libcall may use allocas from the caller. This adds an extra immediate operand to the end of the intrinsics and fixes the legalizer to handle it. Differential Revision: https://reviews.llvm.org/D68151 llvm-svn: 373140
* AMDGPU/GlobalISel: Avoid getting MRI in every functionMatt Arsenault2019-09-282-221/+156
| | | | | | | Store it in AMDGPUInstructionSelector to avoid boilerplate in nearly every select function. llvm-svn: 373139
* [X86] Add broadcast load unfolding support for VPTESTMD/Q and VPTESTNMD/Q.Craig Topper2019-09-282-0/+162
| | | | llvm-svn: 373138
* [X86] Stop using UpdateNodeOperands in combineGatherScatter. Create new ↵Craig Topper2019-09-281-35/+58
| | | | | | | | | | | | | | nodes like most other DAG combines. Creating new nodes is what we usually do. Have to explicitly check that we don't update to an existing node and having to manually manage the worklist is unusual. We can probably add a helper function to reduce the duplication of having to check if we should create a gather or scatter, but I wanted to just get the simple thing done. llvm-svn: 373137
* [X86] Split combineGatherScatter into a version for generic ISD nodes and ↵Craig Topper2019-09-282-9/+41
| | | | | | | | | | | | | | | | another version for X86 specific nodes. The majority of the code doesn't run on the X86 nodes today since its gated by isBeforeLegalizeOps and we don't formm X86 nodes until after that. Except for a couple special case in type legalization. But I think we would probably break those if some of the transforms fire on them. I want to remove the hardcoded operand numbers and the unusual use of UpdateNodeOperands. Being able to know which ISD opcodes are present should help with that. llvm-svn: 373136
* Give an error when StepUsingScriptedThreadPlan is passed a bad classname.Jim Ingham2019-09-288-9/+43
| | | | | | Differential Revision: https://reviews.llvm.org/D68173 llvm-svn: 373135
* [Core] Remove unused dependency on clangASTAlex Langford2019-09-282-4/+0
| | | | llvm-svn: 373134
* [SampleFDO] Create a separate flag profile-accurate-for-symsinlist to handleWei Mi2019-09-274-53/+105
| | | | | | | | | | | | | | | | | | | | profile symbol list. Currently many existing users using profile-sample-accurate want to reduce code size as much as possible. Their use cases are different from the scenario profile symbol list tries to handle -- the major motivation of adding profile symbol list is to get the major memory/code size saving without introduce performance regression. So to keep the behavior of profile-sample-accurate unchanged, we think decoupling these two things and using a new flag to control the handling of profile symbol list may be better. When profile-sample-accurate and the new flag profile-accurate-for-symsinlist are both present, since profile-sample-accurate is a user assertion we let it have a higher precedence. Differential Revision: https://reviews.llvm.org/D68047 llvm-svn: 373133
* [llvm-lipo] Add support for -arch Alexander Shaposhnikov2019-09-274-44/+68
| | | | | | | | | | Add support for -arch. Differential revision: https://reviews.llvm.org/D68116 Test plan: make check-all llvm-svn: 373132
* [X86] Add test case to show missed opportunity to turn (add (zext (vXi1 X)), ↵Craig Topper2019-09-271-0/+32
| | | | | | | | | | | | Y) -> (sub Y, (sext (vXi1 X))) with avx512. With avx512, the vXi1 type is legal. And we can more easily sign extend them to vector registers. zext requires a sign extend and a shift. If we can easily turn the zext into a sext we should. llvm-svn: 373131
* [libFuzzer] Dump trace and provide correct msg for overwritten input.Mitch Phillips2019-09-271-1/+3
| | | | | | | | | | | | | | | | | | Summary: Now crashes with a stacktrace and uses 'overwrites-const-input' as the error message instead of 'out-of-memory'. Reviewers: morehouse, Dor1s Reviewed By: morehouse, Dor1s Subscribers: #sanitizers, llvm-commits, metzman, Dor1s Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D68067 llvm-svn: 373130
* [PatternMatch] Add m_SExtOrSelf(), m_ZExtOrSExtOrSelf() matchers + unittestsRoman Lebedev2019-09-272-0/+51
| | | | | | | | | | m_SExtOrSelf() is for consistency. m_ZExtOrSExtOrSelf() is motivated by the D68103/r373106 : sometimes it is useful to look past any extensions of the shift amount, and m_ZExtOrSExtOrSelf() may be exactly the tool to do that. llvm-svn: 373128
* [debugserver] Add --version/-V command line option to debugserver.Jonas Devlieghere2019-09-271-0/+11
| | | | | | | | | | | When not running under a TTY the output is buffered and not flushed before debugserver exits which makes it impossible to parse the version string. This adds a -V/--version command that just prints the version to stdout and exits with an exit code zero. Differential revision: https://reviews.llvm.org/D68156 llvm-svn: 373127
* refactor: move IOObject::m_should_close_fd into subclassesLawrence D'Anna2019-09-275-19/+20
| | | | | | | | | | | | | | | | | | Summary: m_should_close_fd doesn't need to be in IOObject. It will be useful for my next change to move it down into File and Socket. Reviewers: labath, JDevlieghere, jasonmolenda Reviewed By: JDevlieghere Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D68152 llvm-svn: 373126
* [llvm-readobj] Rename --arm-attributes to --arch-specificYi Kong2019-09-2724-26/+38
| | | | | | | | | This is for compatibility with GNU readobj. --arm-attributes option is left as a hidden alias due to large number of tests using it. Differential Revision: https://reviews.llvm.org/D68110 llvm-svn: 373125
* [Reproducer] Use // in the unit testsJonas Devlieghere2019-09-271-13/+13
| | | | | | This should be a valid absolute path on both POSIX and Windows. llvm-svn: 373124
* Revert "[profile] Add a test dependency on cxx-headers"Vedant Kumar2019-09-271-1/+1
| | | | | | | | | | This reverts commit b539350f7d006b7d6f42c5c4b5715da87a52e5d8. See: http://lab.llvm.org:8011/builders/sanitizer-windows/builds/52140/steps/annotate/logs/stdio The cxx-headers target doesn't exist everywhere. llvm-svn: 373123
* For P0784R7: add support for explicit destructor calls andRichard Smith2019-09-275-45/+298
| | | | | | pseudo-destructor calls in constant evaluation. llvm-svn: 373122
* [profile] Mark instrprof-gcov-fork.test UNSUPPORTED on Darwin as wellVedant Kumar2019-09-271-0/+1
| | | | | | | | | | This test remains flaky everywhere, I think. We should consider deleting it and accompanying support code in GCOVProfiling: I've stopped short of doing that now as the gcov exec* tests appear to be stable. See the thread re: r347779. llvm-svn: 373121
* [profile] Add a test dependency on cxx-headersVedant Kumar2019-09-271-1/+1
| | | | | | | This enables running profile runtime tests which #include <string>, etc. via just `check-profile`. llvm-svn: 373120
* [InstSimplify] generalize FP folds with undef/NaN; NFCSanjay Patel2019-09-271-12/+14
| | | | | | We can reuse this logic for things like fma. llvm-svn: 373119
* [Clang][OpenMP Offload] Create start/end symbols for the offloading entry ↵Sergey Dmitriev2019-09-2739-317/+297
| | | | | | | | | | | | table with a help of a linker Linker automatically provides __start_<section name> and __stop_<section name> symbols to satisfy unresolved references if <section name> is representable as a C identifier (see https://sourceware.org/binutils/docs/ld/Input-Section-Example.html for details). These symbols indicate the start address and end address of the output section respectively. Therefore, renaming OpenMP offload entries section name from ".omp.offloading_entries" to "omp_offloading_entries" to use this feature. This is the first part of the patch for eliminating OpenMP linker script (please see https://reviews.llvm.org/D64943). Differential Revision: https://reviews.llvm.org/D68070 llvm-svn: 373118
* Revert [Dominators][CodeGen] Clean up MachineDominatorsJakub Kuderski2019-09-272-32/+47
| | | | | | This reverts r373101 (git commit 72c57ec3e6b320c31274dadb888dc16772b8e7b6) llvm-svn: 373117
* Revert XFAIL a codegen test AArch64/tailmerging_in_mbp.llJakub Kuderski2019-09-271-1/+0
| | | | | | This reverts r373103 (git commit a524e630a793e18e7d5fabc2262781f310eb0279) llvm-svn: 373116
* [NFC][PhaseOrdering] Add end-to-end tests for the 'two shifts by sext' problemRoman Lebedev2019-09-271-0/+125
| | | | | | | | We start with two separate sext's, but EarlyCSE runs before InstCombine, so when we get them, they are a single sext, and we just ignore that. Likewise, if we had a single sext, we don't do anything there. llvm-svn: 373115
* [Reproducer] Update the unit tests to specify the path style.Jonas Devlieghere2019-09-271-17/+33
| | | | | | | The unit tests started failing on Windows after my recent patch that ensured we always deal with absolute paths. This should fix that. llvm-svn: 373114
* [Docs] Adds new section to User Guides pageDeForest Richards2019-09-271-15/+36
| | | | | | Adds a section to the User Guides page for articles related to building, packaging, and distributing LLVM. Includes sub-sections for CMake, Clang, and Docker. llvm-svn: 373113
* [CMake] Depend on clang-tablegen-targetsJonas Devlieghere2019-09-271-1/+1
| | | | | | | | The ClangDriverOptions target is not available for standalone builds. Thanks Alex for pointing this out! llvm-svn: 373112
* Revert: [lldb] [testsuite] Remove redundant MAKE_DSYM := NOJan Kratochvil2019-09-2717-0/+22
| | | | | | | | | | Revert: llvm-svn: 373061 It broke OSX testsuite: https://reviews.llvm.org/D67589#1686150 lldb/packages/Python/lldbsuite/test/macosx/function-starts/TestFunctionStarts.py llvm-svn: 373110
* [InstSimplify] add tests for fma/fmuladd with undef operand; NFCSanjay Patel2019-09-271-0/+54
| | | | llvm-svn: 373109
* [X86] Call SimplifyDemandedBits in combineGatherScatter any time the mask ↵Craig Topper2019-09-272-5/+3
| | | | | | | | | element is wider than i1, not just when AVX512 is disabled. The AVX2 intrinsics can still be used when AVX512 is enabled and those go through this path. So we should simplify them. llvm-svn: 373108
* [X86] Add test case to show failure to perform SimplifyDemandedBits on mask ↵Craig Topper2019-09-271-0/+34
| | | | | | of avx2 gather intrinsics when avx512 is enabled. llvm-svn: 373107
* [InstCombine] Simplify shift-by-sext to shift-by-zextRoman Lebedev2019-09-273-13/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This is valid for any `sext` bitwidth pair: ``` Processing /tmp/opt.ll.. ---------------------------------------- %signed = sext %y %r = shl %x, %signed ret %r => %unsigned = zext %y %r = shl %x, %unsigned ret %r %signed = sext %y Done: 2016 Optimization is correct! ``` (This isn't so for funnel shifts, there it's illegal for e.g. i6->i7.) Main motivation is the C++ semantics: ``` int shl(int a, char b) { return a << b; } ``` ends as ``` %3 = sext i8 %1 to i32 %4 = shl i32 %0, %3 ``` https://godbolt.org/z/0jgqUq which is, as this shows, too pessimistic. There is another problem here - we can only do the fold if sext is one-use. But we can trivially have cases where several shifts have the same sext shift amount. This should be resolved, later. Reviewers: spatel, nikic, RKSimon Reviewed By: spatel Subscribers: efriedma, hiraditya, nlopes, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68103 llvm-svn: 373106
* [CMake] Make Core depend on ClangDriverOptions (NFC)Jonas Devlieghere2019-09-271-0/+3
| | | | | | | | ModuleList.cpp includes clang/Driver/Driver.h which depends on clang/Driver/Options.inc. This patch adds the corresponding TableGen target to Core. llvm-svn: 373105
* [clangd] Fix template type aliases in findExplicitReferenceIlya Biryukov2019-09-272-21/+28
| | | | | | | | | | | | | | Reviewers: kadircet Reviewed By: kadircet Subscribers: MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D68124 llvm-svn: 373104
* XFAIL a codegen test AArch64/tailmerging_in_mbp.llJakub Kuderski2019-09-271-0/+1
| | | | | | | This test fails when machine dominator tree verifier is run. Needs more investigation, as this is not a new failure. llvm-svn: 373103
* [Reproducer] Always use absolute paths for capture & replay.Jonas Devlieghere2019-09-273-4/+21
| | | | | | | | | | | The VFS requires files to be have absolute paths. The file collector makes paths relative to the reproducer root. If the root is a relative path, this would trigger an assert in the VFS. This patch ensures that we always make the given path absolute. Thank you Ted Woodward for pointing this out! llvm-svn: 373102
* [Dominators][CodeGen] Clean up MachineDominatorsJakub Kuderski2019-09-272-47/+32
| | | | | | | | | | | | | | | | Summary: This is a cleanup patch for MachineDominatorTree. It would be an NFC, except for replacing custom DomTree verification with the generic one. Reviewers: tstellar, tpr, nhaehnle, arsenm, NutshellySima, grosser, hliao Reviewed By: arsenm Subscribers: wdng, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D67976 llvm-svn: 373101
* Fix MSVC "not all control paths return a value" warning. NFCI.Simon Pilgrim2019-09-271-0/+1
| | | | llvm-svn: 373100
* ModuleUtils - silence static analyzer dyn_cast<> null dereference warning. NFCI.Simon Pilgrim2019-09-271-1/+1
| | | | | | The static analyzer is warning about a potential null dereference, but we should be able to use cast<> directly and if not assert will fire for us. llvm-svn: 373099
* Change -march=systemz to triple and fix testKai Nacke2019-09-272-6/+4
| | | | | | | | | | | | | These two test cases use -march=systemz instead of a triple. In particular, the used file format is then based on the default host triple. This leads to different behaviour on different platforms. The SystemZ implementation uses the integrated assembler for a long time now. The mature-mc-support test can be fully enabled. Differential Revision: https://reviews.llvm.org/D68129 llvm-svn: 373098
* FunctionImportGlobalProcessing::processGlobalForThinLTO - silence static ↵Simon Pilgrim2019-09-271-1/+1
| | | | | | | | analyzer dyn_cast<FunctionSummary> null dereference warning. NFCI. The static analyzer is warning about a potential null dereference, but we should be able to use cast<FunctionSummary> directly and if not assert will fire for us. llvm-svn: 373097
* [RISCV] Rename FPRs and use Register arithmeticLuis Marques2019-09-276-199/+136
| | | | | | | | | | | | | | | | | The new names for FPRs ensure that the Register values within the same class are enumerated consecutively (the order is determined by the `LessRecordRegister` function object). Where there were tables mapping between 32- and 64-bit FPRs (and vice versa) this patch replaces them with Register arithmetic. The enumeration order between different register classes is expected to continue to be arbitrary, although it does impact the conversion from the (overloaded) asm FPR names to Register values, and therefore might require updates to the target if the sorting algorithm is changed. Static asserts were added to ensure that changes to the ordering that would impact the current implementation are detected. Differential Revision: https://reviews.llvm.org/D67423 llvm-svn: 373096
* SCCP - silence static analyzer dyn_cast<StructType> null dereference ↵Simon Pilgrim2019-09-271-1/+1
| | | | | | | | warning. NFCI. The static analyzer is warning about a potential null dereference, but we should be able to use cast<StructType> directly and if not assert will fire for us. llvm-svn: 373095
OpenPOWER on IntegriCloud