summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix buildStephen Kelly2018-08-091-1/+1
| | | | llvm-svn: 339379
* [LICM] hoist fences out of loops w/o memory operationsPhilip Reames2018-08-093-6/+37
| | | | | | | | | | The motivating case is an otherwise dead loop with a fence in it. At the moment, this goes all the way through the optimizer and we end up emitting an entirely pointless loop on x86. This case may seem a bit contrived, but we've seen it in real code as the result of otherwise reasonable lowering strategies combined w/thread local memory optimizations (such as escape analysis). To handle this simple case, we can teach LICM to hoist must execute fences when there is no other memory operation within the loop. Differential Revision: https://reviews.llvm.org/D50489 llvm-svn: 339378
* Fix typoStephen Kelly2018-08-091-1/+1
| | | | llvm-svn: 339377
* Remove obsolete policy settingsStephen Kelly2018-08-091-8/+0
| | | | | | | | | | | | | | | | | | Summary: The line cmake_minimum_required(VERSION 3.4.3) already has the effect of setting to NEW all policies present in that release: https://cmake.org/cmake/help/v3.4/manual/cmake-policies.7.html Subscribers: mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D50407 llvm-svn: 339376
* [Sema] P0961R1: Relaxing the structured bindings customization point finding ↵Erik Pilkington2018-08-093-9/+87
| | | | | | | | rules Differential revision: https://reviews.llvm.org/D50418 llvm-svn: 339375
* Add getEndLoc API to replace getLocEndStephen Kelly2018-08-0923-175/+342
| | | | | | | | Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D50348 llvm-svn: 339374
* Add getBeginLoc API to replace getStartLocStephen Kelly2018-08-094-5/+7
| | | | | | | | | | Reviewers: teemperor! Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D50347 llvm-svn: 339373
* Add getBeginLoc API to replace getLocStartStephen Kelly2018-08-0921-183/+342
| | | | | | | | Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D50346 llvm-svn: 339372
* [ELF][HEXAGON] Add R_HEX_HI16/R_HEX_LO16 relocationsSid Manning2018-08-092-0/+14
| | | | | | Differential Revision: https://reviews.llvm.org/D50520 llvm-svn: 339371
* [sanitizer] Remove rsp from the clobber list in internal_cloneKostya Kortchinsky2018-08-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: When compiling with WERROR=ON, a new fatal warning started popping up recently (due to -Werror,-Winline-asm): ``` .../lib/sanitizer_common/sanitizer_linux.cc:1214:24: error: inline asm clobber list contains reserved registers: RSP [-Werror,-Winline-asm] "syscall\n" ^ <inline asm>:1:1: note: instantiated into assembly here syscall ^ .../lib/sanitizer_common/sanitizer_linux.cc:1214:24: note: Reserved registers on the clobber list may not be preserved across the asm statement, and clobbering them may lead to undefined behaviour. "syscall\n" ^ <inline asm>:1:1: note: instantiated into assembly here syscall ^ ``` Removing `rsp` from the clobber list makes the warning go away, and does not appear to have a functional impact. If there is another way to solve this, let me know. Reviewers: eugenis, vitalybuka Reviewed By: eugenis Subscribers: kubamracek, delcypher, llvm-commits, #sanitizers Differential Revision: https://reviews.llvm.org/D50519 llvm-svn: 339370
* [analyzer] Fix the bug in UninitializedObjectChecker caused by not handling ↵George Karpenkov2018-08-092-2/+25
| | | | | | | | block pointers Differential Revision: https://reviews.llvm.org/D50523 llvm-svn: 339369
* [InstCombine] allow fsub+fmul FMF folds for vectorsSanjay Patel2018-08-092-8/+17
| | | | llvm-svn: 339368
* Fix few g++ 8 warning with non obvious copy object operationsDavid Carlier2018-08-092-3/+3
| | | | | | | | | | Reviewers: dblaikie, dexonsmith Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D50296 llvm-svn: 339367
* [NFC] Remove magic bool param in RAUWJF Bastien2018-08-092-5/+6
| | | | | | Use an enum class instead. llvm-svn: 339366
* [Hexagon] Map ISD::TRAP to J2_trap0(#0)Krzysztof Parzyszek2018-08-094-16/+21
| | | | llvm-svn: 339365
* Support RISC-VRui Ueyama2018-08-0919-1/+1013
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Patch by PkmX. This patch makes lld recognize RISC-V target and implements basic relocation for RV32/RV64 (and RVC). This should be necessary for static linking ELF applications. The ABI documentation for RISC-V can be found at: https://github.com/riscv/riscv-elf-psabi-doc/blob/master/riscv-elf.md. Note that the documentation is far from complete so we had to figure out some details from bfd. The patch should be pretty straightforward. Some highlights: - A new relocation Expr R_RISCV_PC_INDIRECT is added. This is needed as the low part of a PC-relative relocation is linked to the corresponding high part (auipc), see: https://github.com/riscv/riscv-elf-psabi-doc/blob/master/riscv-elf.md#pc-relative-symbol-addresses - LLVM's MC support for RISC-V is very incomplete (we are working on this), so tests are given in objectyaml format with the original assembly included in the comments. Once we have complete support for RISC-V in MC, we can switch to llvm-as/llvm-objdump. - We don't support linker relaxation for now as it requires greater changes to lld that is beyond the scope of this patch. Once this is accepted we can start to work on adding relaxation to lld. Differential Revision: https://reviews.llvm.org/D39322 llvm-svn: 339364
* SCEV should forget all loops containing a deleted block.Alina Sbirlea2018-08-092-1/+27
| | | | | | | | | | | | | | Summary: LoopSimplifyCFG should update ScEv for all loops after a block is deleted. If the deleted block "Succ" is part of L, then it is part of all parent loops, so forget topmost loop. Reviewers: greened, mkazantsev, sanjoy Subscribers: jlebar, javed.absar, uabelho, llvm-commits Differential Revision: https://reviews.llvm.org/D50422 llvm-svn: 339363
* [llvm-objcopy] Add --prefix-symbols optionPaul Semel2018-08-094-1/+80
| | | | | | Differential Revision: https://reviews.llvm.org/D50381 llvm-svn: 339362
* [InstCombine] add vector tests for fsub+fmul; NFCSanjay Patel2018-08-091-15/+44
| | | | llvm-svn: 339361
* [GlobalOpt] Don't apply fastcc if it would break inalloca invariantsReid Kleckner2018-08-092-0/+16
| | | | | | | | | | | | | | The inalloca parameter has to be the only parameter passed in memory. Changing the convention to fastcc can break that. At some point we should teach global opt how to optimize ABI attributes like inalloca and maybe byval. These attributes are mainly used to match C ABIs. They are harder for LLVM to optimize and they don't always generate the best code. Fixes PR38487 llvm-svn: 339360
* [SelectionDAG] try harder to convert funnel shift to rotateSanjay Patel2018-08-093-10/+13
| | | | | | | | | | | | Similar to rL337966 - if the DAGCombiner's rotate matching was working as expected, I don't think we'd see any test diffs here. AArch only goes right, and PPC only goes left. x86 has both, so no diffs there. Differential Revision: https://reviews.llvm.org/D50091 llvm-svn: 339359
* [llvm-objcopy] Add --dump-sectionPaul Semel2018-08-095-0/+60
| | | | | | Differential Revision: https://reviews.llvm.org/D49979 llvm-svn: 339358
* extend folding fsub/fadd to fneg for FMFMichael Berg2018-08-092-80/+34
| | | | | | | | | | | | | | Summary: This change provides a common optimization path for both Unsafe and FMF driven optimization for this fsub fold adding reassociation, as it the flag that most closely represents the translation Reviewers: spatel, wristow, arsenm Reviewed By: spatel Subscribers: wdng Differential Revision: https://reviews.llvm.org/D50195 llvm-svn: 339357
* [ARM] Adjust the feature set for ExynosEvandro Menezes2018-08-091-0/+36
| | | | | | | | | Enable `FeatureZCZeroing`, `FeatureHasSlowFPVMLx`, `FeatureExpandMLx`, `FeatureProfUnpredicate`, `FeatureSlowVDUP32`, `FeatureSlowVGETLNi32`, `FeatureSplatVFPToNeon`, `FeatureHasRetAddrStack`, `FeatureSlowFPBrcc` for all Exynos processors. llvm-svn: 339356
* [ARM] Replace processor check with featureEvandro Menezes2018-08-094-11/+28
| | | | | | | Add new feature, `FeatureUseWideStrideVFP`, that replaces the need for a processor check. Otherwise, NFC. llvm-svn: 339354
* Added missing null checks to fix r339351Raphael Isemann2018-08-091-1/+5
| | | | llvm-svn: 339353
* [MC][PredicateExpander] Extend the grammar to support simple switch and ↵Andrea Di Biagio2018-08-095-13/+119
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | return statements. This patch introduces tablegen class MCStatement. Currently, an MCStatement can be either a return statement, or a switch statement. ``` MCStatement: MCReturnStatement MCOpcodeSwitchStatement ``` A MCReturnStatement expands to a return statement, and the boolean expression associated with the return statement is described by a MCInstPredicate. An MCOpcodeSwitchStatement is a switch statement where the condition is a check on the machine opcode. It allows the definition of multiple checks, as well as a default case. More details on the grammar implemented by these two new constructs can be found in the diff for TargetInstrPredicates.td. This patch makes it easier to read the body of auto-generated TargetInstrInfo predicates. In future, I plan to reuse/extend the MCStatement grammar to describe more complex target hooks. For now, this is just a first step (mostly a minor cosmetic change to polish the new predicates framework). Differential Revision: https://reviews.llvm.org/D50457 llvm-svn: 339352
* Also display the output and error output of a failed commandRaphael Isemann2018-08-091-1/+6
| | | | | | | | | | | | | | | | | Summary: Instead of just printing the current "False is not True, ..." message when we fail to run a certain command, this patch also adds the actual command output or error output that we received to the assertion message. Reviewers: davide Reviewed By: davide Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D50492 llvm-svn: 339351
* [MC] Remove PhysRegSize from MCRegisterClassBjorn Pettersson2018-08-093-12/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: The interface to get size and spill size of a register was moved from MCRegisterInfo to TargetRegisterInfo over a year ago. Afaik the old interface has bee around to give out-of-tree targets a chance to adapt to the new interface. One problem with the old MCRegisterClass::PhysRegSize was that it represented the size of a register as "size in bits" / 8. So a register had to be a multiple of eight bits wide for the size to be correct (and the byte size for the target needed to be eight bits). Reviewers: kparzysz, qcolombet Reviewed By: kparzysz Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D47199 llvm-svn: 339350
* [InstCombine] reduce code duplication; NFCSanjay Patel2018-08-091-9/+7
| | | | llvm-svn: 339349
* [LLD][ELF] - Add a test for elf::getPriority(StringRef S)George Rimar2018-08-091-2/+4
| | | | | | | It covers the following line with a test: https://github.com/llvm-mirror/lld/blob/master/ELF/OutputSections.cpp#L383 llvm-svn: 339348
* [AArch64][NFC] better matching of AArch64 target in aarch64-cpus.c testsSjoerd Meijer2018-08-091-22/+22
| | | | | | Differential Revision: https://reviews.llvm.org/D50175 llvm-svn: 339347
* [TargetLowering] Add BuildSDIVPattern helper to BuildExactSDIV (NFCI).Simon Pilgrim2018-08-091-14/+23
| | | | | | As requested in D50392, pull the magic constant calculations out into a helper function. llvm-svn: 339346
* [COFF] Make the relocation scanning for CFG more discriminatingHans Wennborg2018-08-093-7/+176
| | | | | | | | | link.exe ignores REL32 relocations on 32-bit x86, as well as relocations against non-function symbols such as labels. This makes lld do the same. Differential Revision: https://reviews.llvm.org/D50430 llvm-svn: 339345
* Implement diagnostic stream operator for ParsedAttr.Erich Keane2018-08-097-291/+289
| | | | | | | | | | | | | As a part of attempting to clean up the way attributes are printed, this patch adds an operator << to the diagnostics/ partialdiagnostics so that ParsedAttr can be sent directly. This patch also rewrites a large amount* of the times when ParsedAttr was printed using its IdentifierInfo object instead of being printed itself. *"a large amount" == "All I could find". llvm-svn: 339344
* Darwin: mark test unsupported while we sort out how to make it generic.Tim Northover2018-08-091-1/+1
| | | | | | | | This test relies on communicating with debugserver via an unnamed (pre-opened) pipe, but macOS's version of debugserver doesn't seem to support that mode of operation. So disable the test for now. llvm-svn: 339343
* [LLD][ELF] - Add a test for ScriptParser::readPhdrType().George Rimar2018-08-091-0/+4
| | | | | | This adds a test for https://github.com/llvm-mirror/lld/blob/master/ELF/ScriptParser.cpp#L1289. llvm-svn: 339342
* [ARM] FP16: codegen support for VTRNSjoerd Meijer2018-08-092-19/+25
| | | | | | Differential Revision: https://reviews.llvm.org/D50454 llvm-svn: 339340
* [X86][SSE] Remove PMULDQ/PMULUDQ by zeroSimon Pilgrim2018-08-094-69/+51
| | | | | | | | Exposed by D50328 Differential Revision: https://reviews.llvm.org/D50328 llvm-svn: 339337
* Fix structural inequivalency of forward EnumDeclGabor Marton2018-08-092-0/+62
| | | | | | | | | | | | | | Summary: Currently we consider one forward declared RecordDecl and another with a definition equal. We have to do the same in case of enums. Reviewers: a_sidorin, r.stahl, xazax.hun Subscribers: rnkovacs, dkrupp, cfe-commits Differential Revision: https://reviews.llvm.org/D50444 llvm-svn: 339336
* [X86][SSE] Combine (some) target shuffles with multiple usesSimon Pilgrim2018-08-0928-1087/+977
| | | | | | | | | | | | | | As discussed on D41794, we have many cases where we fail to combine shuffles as the input operands have other uses. This patch permits these shuffles to be combined as long as they don't introduce additional variable shuffle masks, which should reduce instruction dependencies and allow the total number of shuffles to still drop without increasing the constant pool. However, this may mean that some memory folds may no longer occur, and on pre-AVX require the occasional extra register move. This also exposes some poor PMULDQ/PMULUDQ codegen which was doing unnecessary upper/lower calculations which will in fact fold to zero/undef - the fix will be added in a followup commit. Differential Revision: https://reviews.llvm.org/D50328 llvm-svn: 339335
* Add support for importing imaginary literalsGabor Marton2018-08-094-0/+27
| | | | | | | | | | Reviewers: a_sidorin, r.stahl, xazax.hun Subscribers: rnkovacs, dkrupp, cfe-commits Differential Revision: https://reviews.llvm.org/D50428 llvm-svn: 339334
* [LLD][ELF] - Add a test for ScriptParser::readOutputSectionDescription.George Rimar2018-08-091-0/+5
| | | | | | | This covers the following line: https://github.com/llvm-mirror/lld/blob/master/ELF/ScriptParser.cpp#L415 llvm-svn: 339333
* Add R_HEX_6_X relocation supportSid Manning2018-08-092-0/+166
| | | | | | | | | This is a larger patch. This relocation has irregular immediate masks that require a lookup to find the correct mask. Differential Revision: https://reviews.llvm.org/D50450 llvm-svn: 339332
* vs integration: bump version numberHans Wennborg2018-08-091-1/+1
| | | | llvm-svn: 339330
* vs integration: update the manifest to require VS 2017Hans Wennborg2018-08-091-3/+3
| | | | | | It previously erroneously said only VS2015 was required. llvm-svn: 339329
* Remove unused type Either from Utility library.Tatyana Krasnukha2018-08-092-110/+54
| | | | llvm-svn: 339328
* [LLD][ELF] - Add a test for ScriptParser::readPhdrs(). NFCI.George Rimar2018-08-091-0/+4
| | | | | | | This covers the following line with a test: https://github.com/llvm-mirror/lld/blob/master/ELF/ScriptParser.cpp#L415 llvm-svn: 339327
* [LLD][ELF] - Add a test case for parsing -defsym.George Rimar2018-08-091-2/+5
| | | | | | | This adds a coverage for the following line of the code: https://github.com/llvm-mirror/lld/blob/master/ELF/ScriptParser.cpp#L274 llvm-svn: 339326
* [clangd] Try to fix buildbot after r339320.Eric Liu2018-08-091-1/+1
| | | | | | http://lab.llvm.org:8011/builders/clang-cmake-armv8-quick/builds/5487 llvm-svn: 339322
OpenPOWER on IntegriCloud