summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [compiler-rt] Create install targets for Darwin librariesShoaib Meenai2019-05-073-44/+66
| | | | | | | | | | | Darwin targets were generating CMake install rules but not the corresponding install targets. Centralize the existing install target creation to a function and use that function for both Darwin and non-Darwin builds. Differential Revision: https://reviews.llvm.org/D61541 llvm-svn: 360181
* [InstCombine] allow sinking fneg operands through an FP min/maxSanjay Patel2019-05-072-21/+17
| | | | | | | | | Fundamentally/generally, we should not have to rely on bailouts/crippling of folds. In this particular case, I think we always recognize the inverted predicate min/max pattern, so there should not be any loss of optimization. Codegen looks better because we are eliminating an fneg. llvm-svn: 360180
* [CommandLine] Allow Options to specify multiple OptionCategory's.Don Hinton2019-05-073-25/+93
| | | | | | | | | | | | | | | | | | Summary: It's not uncommon for separate components to share common Options, e.g., it's common for related Passes to share Options in addition to the Pass specific ones. With this change, components can use OptionCategory's to simply help output even if some of the options are shared. Reviewed By: MaskRay Tags: #llvm Differential Revision: https://reviews.llvm.org/D61574 llvm-svn: 360179
* [Host] Clean up dependencies of HostMacOSXObjCXXAlex Langford2019-05-071-4/+0
| | | | llvm-svn: 360178
* [Tests] Yet more combination of tests for unordered.atomic memsetPhilip Reames2019-05-071-0/+122
| | | | llvm-svn: 360177
* Debug Info: Support address space attributes on rvalue references.Adrian Prantl2019-05-074-7/+34
| | | | | | | | | | | | | | | | | | | DWARF5, 2.12 20ff says that Any debugging information entry representing a pointer or reference type [may have a DW_AT_address_class attribute]. The existing code (https://reviews.llvm.org/D29670) seems to take a quite literal interpretation of that wording. I don't see a reason why an rvalue reference isn't a reference type in the spirit of that paragraph. This patch allows rvalue references to also have address spaces. rdar://problem/50511483 Differential Revision: https://reviews.llvm.org/D61625 llvm-svn: 360176
* [PowerPC][NFC] Update build-vector-tests.ll using ↵Jinsong Ji2019-05-071-2460/+4053
| | | | | | | | | | | | | utils/update_llc_test_checks.py build-vector-tests.ll is a huge testcase, it is hard to maintain: eg: any fundamental changes might need to update hundreds of lines. We should leverage the script to maintain it. This patch simply run utils/update_llc_test_checks.py on it. There should be no missing test points. llvm-svn: 360175
* Guard __builtin_available() with __has_builtin to support older host compilers.Adrian Prantl2019-05-071-1/+2
| | | | llvm-svn: 360174
* Regenerate test to try and fix buildbotsSimon Pilgrim2019-05-071-26/+26
| | | | llvm-svn: 360173
* [Driver] Add command line option to allow loading local lldbinit file.Jonas Devlieghere2019-05-073-2/+13
| | | | | | | | | This patch adds a command line flag that allows lldb to load local lldbinit files. Differential revision: https://reviews.llvm.org/D61578 llvm-svn: 360172
* [DAGCombiner] Avoid creating large tokenfactors in visitTokenFactorFlorian Hahn2019-05-071-2/+3
| | | | | | | | | | | | | | | | | | When simplifying TokenFactors, we potentially iterate over all operands of a large number of TokenFactors. This causes quadratic compile times in some cases and the large token factors cause additional scalability problems elsewhere. This patch adds some limits to the number of nodes explored for the cases mentioned above. Reviewers: niravd, spatel, craig.topper Reviewed By: niravd Differential Revision: https://reviews.llvm.org/D61397 llvm-svn: 360171
* [InstCombine] add tests for FP min/max with negated operands; NFCSanjay Patel2019-05-071-0/+59
| | | | llvm-svn: 360170
* Fixup r360161Pavel Labath2019-05-072-3/+1
| | | | | | | | | Remove SymbolVendorMacOSX from the test, as this plugin is not available on non-mac platforms, and it does not seem to be necessary anyway. Declare inlined-functions.yaml as an input of the test in cmake. llvm-svn: 360169
* Make eh-frame-dwarf-unwind.test run on non-linux platformsPavel Labath2019-05-073-17/+10
| | | | | | | This was meant to be a part of r360158, but I forgot to squash the commits before pushing. llvm-svn: 360168
* Mark private function __sign as constexpr.Marshall Clow2019-05-071-1/+1
| | | | llvm-svn: 360167
* PostfixExpression: Use signed integers in IntegerNodePavel Labath2019-05-074-16/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This is necessary to support parsing expressions like ".cfa -16 + ^", as that format is used in breakpad STACK CFI expressions. Since the PDB expressions use the same parser, this change will affect them too, but I don't believe that should be a problem in practice. If PDBs do contain the negative values, it's very likely that they are intended to be parsed the same way, and if they don't, then it doesn't matter. In case that we do ever need to handle this differently, we can always make the parser behavior customizable, or just use a different parser. To make sure that the integer size is big enough for everyone, I switch from using a (unsigned) 32-bit integer to a 64-bit (signed) one. Reviewers: amccarth, clayborg, aleksandr.urakov Subscribers: markmentovai, lldb-commits Differential Revision: https://reviews.llvm.org/D61311 llvm-svn: 360166
* [WebAssembly] Don't generate unused table entries.Sam Clegg2019-05-074-26/+28
| | | | | | | | | | | | | | When generating PIC output only relocations of type R_WASM_TABLE_INDEX_REL_SLEB should generate table entries. R_WASM_TABLE_INDEX_I32 get resolved at runtime via the auto-generated __wasm_apply_relocs functions. R_WASM_TABLE_INDEX_SLEB are not allowed in PIC code. Differential Revision: https://reviews.llvm.org/D61539 llvm-svn: 360165
* Avoid use-after-move warnings by using swap instead. NFCI.Simon Pilgrim2019-05-072-3/+7
| | | | | | Swap should be as quick in these cases, and leaves the original variables in a known (empty) state. llvm-svn: 360164
* [scudo][standalone] Introduce the QuarantineKostya Kortchinsky2019-05-075-0/+534
| | | | | | | | | | | | | | | | | | | | | Summary: The Quarantine is used to hold chunks for a little while prior to actually releasing them for potential reuse. The code is pretty much the same as the sanitizer_common one, with additional shuffling of the quarantine batches to decrease predictability of allocation patterns when it is enabled. Reviewers: vitalybuka, eugenis, hctim, morehouse Reviewed By: morehouse Subscribers: mgorny, delcypher, jfb, #sanitizers, llvm-commits Tags: #llvm, #sanitizers Differential Revision: https://reviews.llvm.org/D61385 llvm-svn: 360163
* [DebugInfo@O2][LoopVectorize] pr39024: Vectorized code linenos step through ↵Orlando Cazalet-Hyams2019-05-0711-29/+355
| | | | | | | | | | | | | | | | | | | | | | | | | | loop even after completion Summary: Bug: https://bugs.llvm.org/show_bug.cgi?id=39024 The bug reports that a vectorized loop is stepped through 4 times and each step through the loop seemed to show a different path. I found two problems here: A) An incorrect line number on a preheader block (for.body.preheader) instruction causes a step into the loop before it begins. B) Instructions in the middle block have different line numbers which give the impression of another iteration. In this patch I give all of the middle block instructions the line number of the scalar loop latch terminator branch. This seems to provide the smoothest debugging experience because the vectorized loops will always end on this line before dropping into the scalar loop. To solve problem A I have altered llvm::SplitBlockPredecessors to accommodate loop header blocks. Reviewers: samsonov, vsk, aprantl, probinson, anemet, hfinkel Reviewed By: hfinkel Subscribers: bjope, jmellorcrummey, hfinkel, gbedwell, hiraditya, zzheng, llvm-commits Tags: #llvm, #debug-info Differential Revision: https://reviews.llvm.org/D60831 llvm-svn: 360162
* Added missing files from 360071.Greg Clayton2019-05-073-0/+1179
| | | | llvm-svn: 360161
* [JITLink] Fix some copy/paste related typos in a test case.Lang Hames2019-05-071-20/+21
| | | | | | | Several X86_64_RELOC_SUBTRACTOR tests for subtrahend handling were incorrectly labeled as tests for kinds of minuend handling. llvm-svn: 360160
* [SCEV] Add explicit representations of umin/sminKeno Fischer2019-05-0725-519/+597
| | | | | | | | | | | | | | | | | | Summary: Currently we express umin as `~umax(~x, ~y)`. However, this becomes a problem for operands in non-integral pointer spaces, because `~x` is not something we can compute for `x` non-integral. However, since comparisons are generally still allowed, we are actually able to express `umin(x, y)` directly as long as we don't try to express is as a umax. Support this by adding an explicit umin/smin representation to SCEV. We do this by factoring the existing getUMax/getSMax functions into a new function that does all four. The previous two functions were largely identical. Reviewed By: sanjoy Differential Revision: https://reviews.llvm.org/D50167 llvm-svn: 360159
* RegisterContextLLDB: Push CFA value on DWARF stack when evaluating register ↵Pavel Labath2019-05-073-1/+74
| | | | | | | | | | | | | | | | | | | | | | | | | expressions Summary: This behavior is specified in the Section 6.4.2.3 (Register Rule instructions) of the DWARF4 spec. We were not doing that, which meant that any register rule which was relying on the cfa value being there was not evaluated correctly (it was aborted due to "out of bounds" access). I'm not sure how come this wasn't noticed before, but I guess this has something to do with the fact that dwarf unwind expressions are not used very often, and when they are, the situation is so complicated that the CFA is of no use. I noticed this when I started emitting dwarf expressions for the unwind information present in breakpad symbol files. Reviewers: jasonmolenda, clayborg Subscribers: aprantl, lldb-commits Differential Revision: https://reviews.llvm.org/D61018 llvm-svn: 360158
* Fix local shadow variable warning. NFCI.Simon Pilgrim2019-05-071-2/+2
| | | | llvm-svn: 360157
* [ASTImporter] Corrected type of integer constant in a test.Balazs Keri2019-05-071-2/+2
| | | | llvm-svn: 360156
* Add an explicit triple to this test to hopefully appease the build bots.Aaron Ballman2019-05-071-1/+1
| | | | llvm-svn: 360155
* [lldb] [lit] Update constants in write Register testsMichal Gorny2019-05-078-256/+256
| | | | | | Update the constants used for XMM/YMM/ZMM registers to match read tests. llvm-svn: 360154
* [Tooling] Add -x flags when inferring compile commands for files with ↵Sam McCall2019-05-072-6/+12
| | | | | | | | | | | | | | | | no/invalid extension. Summary: We treat them as headers, as the motivating case is C++ standard library. Reviewers: kadircet Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D61633 llvm-svn: 360153
* [OpenCL] Prevent mangling kernel functions.Anastasia Stulova2019-05-076-19/+56
| | | | | | | | | | | | Kernel function names have to be preserved as in the original source to be able to access them from the host API side. This commit also adds restriction to kernels that prevents them from being used in overloading, templates, etc. Differential Revision: https://reviews.llvm.org/D60454 llvm-svn: 360152
* [clangd] Introduce intermediate representation of formatted textIlya Biryukov2019-05-075-0/+388
| | | | | | | | | | | | | | | | Summary: That can render to markdown or plain text. Used for findHover requests. Reviewers: malaperle, sammccall, kadircet Reviewed By: sammccall Subscribers: mgorny, MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D58547 llvm-svn: 360151
* lld-link: Allow /? as option prefix, like -? is allowedNico Weber2019-05-071-9/+12
| | | | | | | | | | link.exe seems to allow `/?foo` and `-?foo` in addition to `/foo` and `-foo`. Since lld-link already supports the `-?foo` spelling, support `/?foo` as well. Differential Revision: https://reviews.llvm.org/D61375 llvm-svn: 360150
* Precommit tests for or/add transform. NFC.Robert Lougher2019-05-072-0/+130
| | | | llvm-svn: 360149
* [lldb] [lit] Fix Register tests to reference arrays via %0 and %1Michal Gorny2019-05-078-189/+180
| | | | | | | | Fix Register tests to reference memory access to arrays via %0 and %1, rather than via referencing %rax and %rbx directly. This fixes test build failures on 32-bit x86. llvm-svn: 360148
* Allow field offset lookups in types with incomplete arrays within libclang.Aaron Ballman2019-05-072-2/+41
| | | | | | Patch thanks to Jorn Vernee llvm-svn: 360147
* [lldb] Add MacroQualified switch cases for r360109Krasimir Georgiev2019-05-071-0/+6
| | | | | | | | | | | | | | | | | | Summary: r360109 added a new enum case, causing lldb build to fail with several errors like: lldb/source/Symbol/ClangASTContext.cpp:4342:11: error: enumeration value 'MacroQualified' not handled in switch [-Werror,-Wswitch] switch (qual_type->getTypeClass()) { ^ This adds the missing switch cases. I'm not an lldb maintainer and just used my best judgement that it's probably expected that we break in these cases. Feel free to ping / revert / fix this change if this behavior is not appropriate. Reviewers: gribozavr Reviewed By: gribozavr Differential Revision: https://reviews.llvm.org/D61640 llvm-svn: 360146
* Add typo correction for command-line flags to ELF and COFF lld driversNico Weber2019-05-078-11/+34
| | | | | | | | | | | | For lld-link, unknown '/'-style flags are treated as filenames on POSIX systems, so only '-'-style flags get typo correction for now. This matches clang-cl. PR37006. Differential Revision: https://reviews.llvm.org/D61443 llvm-svn: 360145
* [PowerPC] Use the two-constant NR algorithm for refining estimatesNemanja Ivanovic2019-05-078-49/+53
| | | | | | | | | | | | The single-constant algorithm produces infinities on a lot of denormal values. The precision of the two-constant algorithm is actually sufficient across the range of denormals. We will switch to that algorithm for now to avoid the infinities on denormals. In the future, we will re-evaluate the algorithm to find the optimal one for PowerPC. Differential revision: https://reviews.llvm.org/D60037 llvm-svn: 360144
* [llvm-objdump] - Print relocation record in a GNU format.George Rimar2019-05-0716-46/+99
| | | | | | | | | | | | | | | This fixes the https://bugs.llvm.org/show_bug.cgi?id=41355. Previously with -r we printed relocation section name instead of the target section name. It was like this: "RELOCATION RECORDS FOR [.rel.text]" Now it is: "RELOCATION RECORDS FOR [.text]" Also when relocation target section has more than one relocation section, we did not combine the output. Now we do. Differential revision: https://reviews.llvm.org/D61312 llvm-svn: 360143
* minor cmake formatting style fixNico Weber2019-05-071-1/+3
| | | | llvm-svn: 360142
* gn build: Merge r360116Nico Weber2019-05-072-0/+2
| | | | llvm-svn: 360141
* gn build: Run `git ls-files '*.gn' '*.gni' | xargs llvm/utils/gn/gn.py format`Nico Weber2019-05-073-12/+13
| | | | llvm-svn: 360140
* [LLD][ELF] - Remove symbol-name-offset.elf binary from test cases.George Rimar2019-05-073-7/+15
| | | | | | | It was possible to convert the test case to YAML test. After that, we have only one binary test left in LLD/ELF. llvm-svn: 360139
* [llvm-exegesis] BenchmarkRunner::runConfiguration(): write small snippet to ↵Roman Lebedev2019-05-071-7/+6
| | | | | | | | | | | | | memory It was previously writing this temporary snippet to file, then reading it back, but leaving the tmp file in place. This is both unefficient, and results in huge garbage pileup in /tmp. One would have thought it would have been caught during D60317.. llvm-svn: 360138
* [yaml2obj] - Allow setting st_value explicitly for Symbol.George Rimar2019-05-074-50/+96
| | | | | | | | | | In some cases it is useful to explicitly set symbol's st_name value. For example, I am using it in a patch for LLD to remove the broken binary from a test case and replace it with a YAML test. Differential revision: https://reviews.llvm.org/D61180 llvm-svn: 360137
* Revert "[TableGen] Fix a typo"Krasimir Georgiev2019-05-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Summary: This reverts commit r360106. The revisioin causes llvm-tblgen to hang while generating info for RISCV.td. The root cause might be in the RISCV.td definition but I don't know enough about this to investigate further. Command that starts hangning after r360106: `llvm-build/bin/llvm-tblgen -I llvm/include -I llvm/tools/clang/include -I llvm/lib/Target/RISCV -gen-instr-info llvm/lib/Target/RISCV/RISCV.td` Reviewers: sammccall, yan_luo, craig.topper, gribozavr Reviewed By: gribozavr Subscribers: PkmX, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D61632 llvm-svn: 360136
* [ARM GlobalISel] Widen G_SELECT operandsDiana Picus2019-05-072-2/+74
| | | | | | ...except for the condition operand. llvm-svn: 360135
* [X86][AVX] Fold concat(packus(),packus()) -> packus(concat(),concat()) (PR34773)Simon Pilgrim2019-05-078-92/+106
| | | | | | Basic "revectorization" combine, we can probably do more opcodes here but it can be a tricky cost-benefit depending on where the subvectors came from - but this case helps shuffle combining. llvm-svn: 360134
* Fixed "Value stored to 'Opc' is never read" warning. NFCI.Simon Pilgrim2019-05-071-1/+1
| | | | llvm-svn: 360133
* [ASTImporter] Import TemplateParameterLists in function templates.Balazs Keri2019-05-072-0/+39
| | | | | | | | | | | | | | | | Summary: Correct missing import of TemplateParameterList in function decl. Reviewers: martong, a.sidorin, shafik Reviewed By: martong Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D60461 llvm-svn: 360132
OpenPOWER on IntegriCloud