summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [LoopVectorize] Don't dereference a dyn_cast result. NFCI.Simon Pilgrim2019-09-171-1/+1
| | | | | | The static analyzer is warning about potential null dereferences of dyn_cast<> results, we can use cast<> directly as we know that these cases should all be CastInst, which is why its working atm and anyway cast<> will assert if they aren't. llvm-svn: 372116
* [ARM] Fix for MVE load/store stack accessesDavid Green2019-09-172-7/+211
| | | | | | | | | | MVE loads and stores have a 7 bit immediate range, scaled by the length of the type. This needs to be taught to the stack estimation code to ensure that an emergency spill slot is reserved in case we run out of registers when materialising stack indices. Also the narrowing loads/stores can be created with frame indices even though they do not accept SP as a register. We need in those cases to make sure we have an emergency register to use as the frame base, as SP can never be used. Differential Revision: https://reviews.llvm.org/D67327 llvm-svn: 372114
* Hide implementation details in namespaces.Benjamin Kramer2019-09-177-9/+23
| | | | llvm-svn: 372113
* lldb: move a test input to the test Inputs dirKrasimir Georgiev2019-09-172-1/+3
| | | | | | | | | | Summary: This makes the input file for a new test added in r372060 directly available in the Inputs subdirectory of the test dir. Differential Revision: https://reviews.llvm.org/D67655 llvm-svn: 372112
* [ARM][LowOverheadLoops] Add LR def safety checkSam Parker2019-09-1715-309/+738
| | | | | | | | | | | | | | | Converting the *LoopStart pseudo instructions into DLS/WLS results in LR being defined. These instructions were inserted on the assumption that LR would already contain the loop counter because a mov is introduced during ISel as the the consumers in the loop can only use LR. That assumption proved wrong! So perform a safety check, finding an appropriate place to insert the DLS/WLS instructions or revert if this isn't possible. Differential Revision: https://reviews.llvm.org/D67539 llvm-svn: 372111
* [llvm-readobj] - Test PPC64 relocations properly.George Rimar2019-09-172-3/+258
| | | | | | | | | We had a precompiled binary committed and not all of the relocations supported were tested. This patch fixes this. Differential revision: https://reviews.llvm.org/D67617 llvm-svn: 372110
* [obj2yaml] - Support PPC64 relocation types.George Rimar2019-09-172-0/+491
| | | | | | | | | | | | | We do not support them and fail with llvm_unreachable currently. This is not the only target we do not support and also seems we are missing the tests for those we have already. But I needed this one for another patch, so posted it separatelly. Relocation names are taken from llvm\include\llvm\BinaryFormat\ELFRelocs\PowerPC64.def Differential revision: https://reviews.llvm.org/D67615 llvm-svn: 372109
* [yaml2obj/obj2yaml] - Allow setting an arbitrary values for e_machine.George Rimar2019-09-173-0/+95
| | | | | | | | | | | | | | | Currently we only allow using a known named constants for `Machine` field in YAML documents. This patch allows using any numbers (valid or "unknown") and adds test cases for current and new functionality. With this it is possible to write a test cases for really unknown EM_* targets. Differential revision: https://reviews.llvm.org/D67652 llvm-svn: 372108
* [docs] Make --version text more correctJames Henderson2019-09-177-9/+11
| | | | | | | | | | | | | | | Follow-up to r371983. Referring to "this program" in the description of the --version option in the documentation isn't exactly correct, because the docs are not part of the program, and so "this program" doesn't really refer to anything. This patch brings the other users of this terminology into line with the new updates to llvm-size and llvm-strings. Reviewed by: alexshap, MaskRay Differential Revision: https://reviews.llvm.org/D67618 llvm-svn: 372107
* [RISCV] Switch to the Machine SchedulerLuis Marques2019-09-1773-7481/+7663
| | | | | | | | | Most of the test changes are trivial instruction reorderings and differing register allocations, without any obvious performance impact. Differential Revision: https://reviews.llvm.org/D66973 llvm-svn: 372106
* [Attributor][Fix] Initialize the cache prior to using itJohannes Doerfert2019-09-1715-72/+117
| | | | | | | | | | | | | | | | | | | | | Summary: There were segfaults as we modified and iterated the instruction maps in the cache at the same time. This was happening because we created new instructions while we populated the cache. This fix changes the order in which we perform these actions. First, the caches for the whole module are created, then we start to create abstract attributes. I don't have a unit test but the LLVM test suite exposes this problem. Reviewers: uenoku, sstefan1 Subscribers: hiraditya, bollu, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D67232 llvm-svn: 372105
* Revert Patch from PhabricatorLuis Marques2019-09-1773-7663/+7481
| | | | | | This reverts r372092 (git commit e38695a0255c9e7b53639f349f8101bae1ce5c04) llvm-svn: 372104
* [X86] Use APInt::getLowBitsSet helper. NFCI.Simon Pilgrim2019-09-171-1/+2
| | | | | | Also avoids a static analyzer warning about out of range shifts. llvm-svn: 372103
* Add SemanticRanges to Clangd server.Utkarsh Saxena2019-09-175-2/+66
| | | | | | | | | | | | | | | | | | | | | | | Summary: Adds Semantic Ranges capabilities to Clangd server. Also adds tests for running it via clangd server. This differs from the LSP spec as the spec needs this to be evaluated on multiple 'pos' and the expected output is an list of list of semantic ranges. This is majorly for multi cursor and assuming this is a rare thing, we don't want to optimize make things complicated just for this. This should be done in the LSP level by queueing one request per 'pos' in the input. LSP Spec: https://github.com/microsoft/language-server-protocol/blob/dbaeumer/3.15/specification.md#textDocument_selectionRange Reviewers: hokein Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D67650 llvm-svn: 372102
* [SLC] Preserve attrs for strncpy(x, "", y) -> memset(align 1 x, '\0', y)David Bolvansky2019-09-172-1/+14
| | | | llvm-svn: 372101
* [SVE][MVT] Fixed-length vector MVT rangesGraham Hunter2019-09-1718-179/+214
| | | | | | | | | | | | | | | | | * Reordered MVT simple types to group scalable vector types together. * New range functions in MachineValueType.h to only iterate over the fixed-length int/fp vector types. * Stopped backends which don't support scalable vector types from iterating over scalable types. Reviewers: sdesmalen, greened Reviewed By: greened Differential Revision: https://reviews.llvm.org/D66339 llvm-svn: 372099
* [InstCombine] Annotate strdup with deref_or_nullDavid Bolvansky2019-09-175-3/+42
| | | | llvm-svn: 372098
* [NFCI] Fixed buildbotsDavid Bolvansky2019-09-171-6/+1
| | | | llvm-svn: 372097
* [SimplifyLibCalls] Fix -Wunused-result after D53342/r372091Fangrui Song2019-09-171-1/+2
| | | | llvm-svn: 372096
* [NFC] Updated testDavid Bolvansky2019-09-171-7/+7
| | | | llvm-svn: 372095
* [ELF][AARCH64] Refactor AArchErrataFix to match changes in ARMErrataFix NFC.Peter Smith2019-09-171-22/+19
| | | | | | | | | | | | | | | | | | D67284 introduced ARMErrataFix.cpp which was derived from AArch64ErrataFix.cpp. There were some useful refactoring changes made to ARMErrataFix.cpp made as part of the review. This change applies the relevant changes back to AArch64ErrataFix.cpp. Main changes are: - Old style variable names in comments like IS, are now new style isec. - Simplify init() collection of mappingSymbols to always start with a code mapping symbol. - Simplify logic in mergeCmp(). - Fix one 80 column overflow caused by IS -> isec transformation. Differential Revision: https://reviews.llvm.org/D67622 llvm-svn: 372094
* [NFC} Updated testDavid Bolvansky2019-09-171-2/+5
| | | | llvm-svn: 372093
* Patch from PhabricatorLuis Marques2019-09-1773-7481/+7663
| | | | llvm-svn: 372092
* [SimplifyLibCalls] Mark known arguments with nonnullDavid Bolvansky2019-09-1749-411/+1159
| | | | | | | | | | | | Reviewers: efriedma, jdoerfert Reviewed By: jdoerfert Subscribers: ychen, rsmith, joerg, aaron.ballman, lebedev.ri, uenoku, jdoerfert, hfinkel, javed.absar, spatel, dmgreen, llvm-commits Differential Revision: https://reviews.llvm.org/D53342 llvm-svn: 372091
* [lldb] [Process/gdb-remote] Fix defaulting signal to invalid in action listMichal Gorny2019-09-171-2/+3
| | | | | | | | | | Fix processing of "C" packet with signal for the whole process to default signal value for action list to LLDB_INVALID_SIGNAL_NUMBER rather than 0. Differential Revision: https://reviews.llvm.org/D67625 llvm-svn: 372090
* [llvm-readobj] - Fix BB after r372087.George Rimar2019-09-171-1/+1
| | | | | | Seems I forgot to update the number of bytes checked. llvm-svn: 372089
* [llvm-ar] Parse 'h' and '-h': display help and exitFangrui Song2019-09-172-5/+11
| | | | | | | | | | | Support `llvm-ar h` and `llvm-ar -h` because they may be what users try at first. Note, operation 'h' is undocumented in GNU ar. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D67560 llvm-svn: 372088
* [llvm-readobj] - Fix a TODO in elf-reloc-zero-name-or-value.test.George Rimar2019-09-171-6/+20
| | | | | | | | | | | | | The "TODO" mentioned was: "Add test for symbol with no name but with a value once yaml2obj allows referencing symbols with no name from relocations." We can do it now. Differential revision: https://reviews.llvm.org/D67609 llvm-svn: 372087
* [AMDGPU]: PHI Elimination hooks added for custom COPY insertion. FixedAlexander Timofeev2019-09-177-30/+176
| | | | | | | Defferential Revision: https://reviews.llvm.org/D67101 Reviewers: rampitec, vpykhtin llvm-svn: 372086
* [ARM] LE support in ConstantIslandsSam Parker2019-09-176-27/+856
| | | | | | | | | | | | | The low-overhead branch extension provides a loop-end 'LE' instruction that performs no decrement nor compare, it just jumps backwards. This patch modifies the constant islands pass to try to insert LE instructions in place of a Thumb2 conditional branch, instead of shrinking it. This only happens if a cmp can be converted to a cbn/z and used to exit the loop. Differential Revision: https://reviews.llvm.org/D67404 llvm-svn: 372085
* [LoopUnroll] Use LoopSize+1 as threshold, to allow unrolling loops matching ↵Florian Hahn2019-09-173-5/+63
| | | | | | | | | | | | | | | | | LoopSize. We use `< UP.Threshold` later on, so we should use LoopSize + 1, to allow unrolling if the result won't exceed to loop size. Fixes PR43305. Reviewers: efriedma, dmgreen, paquette Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D67594 llvm-svn: 372084
* [llvm-readobj] - Refactor the code.George Rimar2019-09-172-39/+26
| | | | | | | | It's a straightforward refactoring that allows to simplify and encapsulate the code. Differential revision: https://reviews.llvm.org/D67624 llvm-svn: 372083
* [Clang] Pragma vectorize_width() implies vectorize(enable)Sjoerd Meijer2019-09-173-9/+38
| | | | | | | | | | | | Specifying the vectorization width was supposed to implicitly enable vectorization, except that it wasn't really doing this. It was only setting the vectorize.width metadata, but not vectorize.enable. This should fix PR27643. Differential Revision: https://reviews.llvm.org/D66290 llvm-svn: 372082
* [llvm-objcopy] - Remove python invocations from 2 test cases.George Rimar2019-09-172-27/+2
| | | | | | | | | It is possible to use yaml2obj to create sections with overlapping sh_offset now. This patch does that. Differential revision: https://reviews.llvm.org/D67610 llvm-svn: 372081
* [RISCV] Add option aliases: -mcmodel=medany and -mcmodel=medlowKito Cheng2019-09-172-0/+16
| | | | | | | | | | | | | | RISC-V GCC use -mcmodel=medany and -mcmodel=medlow, but LLVM use -mcmodel=small and -mcmodel=medium. Add those two option aliases for provide same user interface between GCC and LLVM. Reviewed By: lenary Differential Revision: https://reviews.llvm.org/D67066 llvm-svn: 372080
* [bugpoint] Add support for -Oz and properly enable -Os.Florian Hahn2019-09-171-12/+34
| | | | | | | | | | | | | | | | | This patch adds -Oz as option and also properly enables support for -Os. Currently, the existing check for -Os is dead, because the enclosing if only checks of O1, O2 and O3. There is still a difference between the -Oz pipeline compared to opt, but I have not been able to track that down yet. Reviewers: bogner, sebpop, efriedma Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D67593 llvm-svn: 372079
* [RISCV] Define __riscv_cmodel_medlow and __riscv_cmodel_medany correctlyKito Cheng2019-09-172-2/+28
| | | | | | | | | | | | | | RISC-V LLVM was only implement small/medlow code model, so it defined __riscv_cmodel_medlow directly without check. Now, we have medium/medany code model in RISC-V back-end, it should define according the actually code model. Reviewed By: lewis-revill Differential Revision: https://reviews.llvm.org/D67065 llvm-svn: 372078
* Reland "[lldb][NFC] Make ApplyObjcCastHack less scary"Raphael Isemann2019-09-171-9/+5
| | | | | | First version had a typo. llvm-svn: 372077
* [ARM][MVE] Add invalidForTailPredication to TSFlagsSam Parker2019-09-175-0/+197
| | | | | | | | | Set this bit for the MVE reduction instructions to prevent a loop from becoming tail predicated in their presence. Differential Revision: https://reviews.llvm.org/D67444 llvm-svn: 372076
* [Attributor] Use Alias Analysis in noalias callsite argument deductionHideto Ueno2019-09-173-15/+21
| | | | | | | | | | | | | | | | Summary: This patch adds a check of alias analysis in `noalias` callsite argument deduction. Reviewers: jdoerfert, sstefan1 Reviewed By: jdoerfert Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D67604 llvm-svn: 372075
* [clangd] Remove stale comment. NFCIlya Biryukov2019-09-171-2/+0
| | | | llvm-svn: 372074
* [Attributor] Create helper struct for handling analysis gettersHideto Ueno2019-09-172-31/+37
| | | | | | | | | | | | | | | | Summary: This patch introduces a helper struct `AnalysisGetter` to put together analysis getters. In this patch, a getter for `AAResult` is also added for `noalias`. Reviewers: jdoerfert, sstefan1 Reviewed By: jdoerfert Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D67603 llvm-svn: 372072
* [git-llvm] Do not reinvent `@{upstream}` (take 2)David Zarzycki2019-09-171-9/+9
| | | | | | | | | | | | This makes git-llvm more of a thin wrapper around git while temporarily maintaining backwards compatibility with past git-llvm behavior. Using @{upstream} makes git-llvm more robust when used with a nontrivial local repository. https://reviews.llvm.org/D67389 llvm-svn: 372070
* [X86] Split oversized vXi1 vector arguments and return values into scalars ↵Craig Topper2019-09-175-86/+1794
| | | | | | | | | | | | | | | | | on avx512 targets. Previously we tried to split them into narrower v64i1 or v16i1 pieces that each got promoted to vXi8 and then passed in a zmm or xmm register. But this crashes when you need to pass more pieces than available registers reserved for argument passing. The scalarizing done here generates much longer and slower code, but is consistent with the behavior of avx2 and earlier targets for these types. Fixes PR43323. llvm-svn: 372069
* [X86] Allow masked VBROADCAST instructions to be turned into BLENDM with a ↵Craig Topper2019-09-173-80/+159
| | | | | | | | | | broadcast load to avoid a copy. The BLENDM instructions allow an 2 sources and an independent destination while masked VBROADCAST has the destination tied to the source. llvm-svn: 372068
* [X86] Add support for commuting EVEX VCMP instructons with any immediate value.Craig Topper2019-09-172-8/+34
| | | | | | Previously we limited to the EQ/NE/TRUE/FALSE/ORD/UNORD immediates. llvm-svn: 372067
* [X86] Add test case for missed opportunity to commute a VCMP instruction ↵Craig Topper2019-09-171-0/+37
| | | | | | after unfolding one load in order to fold another load. llvm-svn: 372066
* [X86] Enable commuting of EVEX VCMP for all immediate values during isel.Craig Topper2019-09-175-45/+55
| | | | llvm-svn: 372065
* [test] Disable reproducer dump test on WindowsJonas Devlieghere2019-09-171-0/+1
| | | | llvm-svn: 372064
* Fix reliance on -flax-vector-conversions in AVX intrinsics headers andRichard Smith2019-09-174-16/+16
| | | | | | corresponding tests. llvm-svn: 372063
OpenPOWER on IntegriCloud