summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [lldb] [Process/NetBSD] Fix wrongly mapping mm* registersMichal Gorny2019-04-113-2/+79
| | | | | | | | | | | | | Fix mistake that mapped mm* registers into the space for xmm* registers, rather than the one shared with st* registers. In other words, 'register read mmN' now correctly shows the mmN register rather than part of xmmN. Includes a minimal lit regression test. Differential Revision: https://reviews.llvm.org/D60325 llvm-svn: 358178
* [llvm] [lit] Add target-x86* featuresMichal Gorny2019-04-111-0/+4
| | | | | | | | | | | Add a 'target-x86' and 'target-x86_64' feature sthat indicates that the default target is 32-bit or 64-bit x86, appropriately. Combined with 'native' feature, we're going to use this to control x86-specific LLDB native process tests. Differential Revision: https://reviews.llvm.org/D60474 llvm-svn: 358177
* YAMLIO: Fix serialization of strings with embedded nulsPavel Labath2019-04-112-6/+11
| | | | | | | | | | | | | | | | | | | | | | Summary: A bug/typo in Output::scalarString caused us to round-trip a StringRef through a const char *. This meant that any strings with embedded nuls were unintentionally cut short at the first such character. (It also could have caused accidental buffer overruns, but it seems that all StringRefs coming into this functions were formed from null-terminated strings.) This patch fixes the bug and adds an appropriate test. Reviewers: sammccall, jhenderson Subscribers: kristina, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60505 llvm-svn: 358176
* [X86][AVX] Add X86ISD::VPERMV3 demandedelts testSimon Pilgrim2019-04-111-0/+28
| | | | llvm-svn: 358175
* [X86] SimplifyDemandedVectorElts - add X86ISD::VPERMV mask supportSimon Pilgrim2019-04-112-15/+12
| | | | llvm-svn: 358174
* [X86][AVX] Add X86ISD::VPERMV demandedelts testSimon Pilgrim2019-04-111-0/+22
| | | | llvm-svn: 358173
* [DAGCombiner][x86] scalarize inserted vector FP opsSanjay Patel2019-04-112-72/+98
| | | | | | | | | | | | | | | | | | | | | | | // bo (build_vec ...undef, x, undef...), (build_vec ...undef, y, undef...) --> // build_vec ...undef, (bo x, y), undef... The lifetime of the nodes in these examples is different for variables versus constants, but they are all build vectors briefly, so I'm proposing to catch them in this form to handle all of the leading examples in the motivating test file. Before we have build vectors, we might have insert_vector_element. After that, we might have scalar_to_vector and constant pool loads. It's going to take more work to ensure that FP vector operands are getting simplified with undef elements, so this transform can apply more widely. In a non-loose FP environment, we are likely simplifying FP elements to NaN values rather than undefs. We also need to allow more opcodes down this path. Eg, we don't handle FP min/max flavors yet. Differential Revision: https://reviews.llvm.org/D60514 llvm-svn: 358172
* [AArch64] Add lowering pattern for llvm.aarch64.neon.vcvtfxs2fp.f16.i64Diogo N. Sampaio2019-04-112-0/+12
| | | | | | | | | | | | | | | | Summary: Add lowering pattern for llvm.aarch64.neon.vcvtfxs2fp.f16.i64 Reviewers: pbarrio, DavidSpickett, LukeGeeson Reviewed By: LukeGeeson Subscribers: javed.absar, kristof.beyls, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60259 llvm-svn: 358171
* [X86] SimplifyDemandedVectorElts - add X86ISD::VPERMILPV mask supportSimon Pilgrim2019-04-112-83/+21
| | | | llvm-svn: 358170
* Minidump: extend UUID byte-swapping to windows platformPavel Labath2019-04-113-40/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: D59433 added code to swap bytes UUIDs coming from minidump files, but only enabled it for apple platforms. Based on my research, I believe this is the correct thing to do for windows as well, as the natural way of printing U(G)UIDs on this platforms is to print the first three components as (4 or 2)-byte integers printed in natural (big-endian) order. This makes the UUID string coming out of lldb match the strings produced by other windows tools. The decision to byte-swap the age field is somewhat arbitrary, because the age field is usually printed separately from the file GUID (and often in decimal). However, for our purposes (telling whether two files are identical), including it in the UUID is correct, and printing it in big-endian makes it easier to recognize the age value. This also makes the UUIDs generated here (almost) match up with the UUIDs computed for breakpad symbol files (BreakpadRecords.cpp:parseModuleId), which already implemented the byte-swapping. The "almost" is here because ObjectFileBreakpad does not swap the age field, but I'll fix that in a follow-up. There is no UUID support in ObjectFileCOFF at the moment, but ideally the algorithms used here and in ObjectFileCOFF should be in sync so that object file matching works correctly. Reviewers: clayborg, amccarth, markmentovai, asmith Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D60501 llvm-svn: 358169
* [X86][AVX] Add X86ISD::VPERMILPV demandedelts testsSimon Pilgrim2019-04-111-0/+96
| | | | llvm-svn: 358168
* [X86] SimplifyDemandedVectorElts - add X86ISD::VPERMIL2 mask supportSimon Pilgrim2019-04-112-19/+9
| | | | llvm-svn: 358167
* [X86][XOP] Add X86ISD::VPERMIL2 demandedelts testSimon Pilgrim2019-04-111-0/+46
| | | | llvm-svn: 358166
* [X86] SimplifyDemandedVectorElts - add VPPERM supportSimon Pilgrim2019-04-112-1/+10
| | | | | | We need to add support for all variable shuffle mask ops, but VPPERM is the only one that already has test coverage. llvm-svn: 358165
* [libunwind] Fix the typo in unw_save_vfp_as_X aliasPetr Hosek2019-04-111-1/+1
| | | | | | This was accidentaly introduced in r357640. llvm-svn: 358164
* [ValueTracking] Change if-else chain into switch in computeKnownBitsFromAssumeSander de Smalen2019-04-111-8/+18
| | | | | | | | | | | This is a follow-up patch to D60504 to further improve performance issues in computeKnownBitsFromAssume. The patch is NFC, but may improve compile-time performance if the compiler isn't clever enough to do the optimization itself. llvm-svn: 358163
* Test commit accessOliver Stannard2019-04-111-0/+1
| | | | llvm-svn: 358162
* Use llvm::lower_bound. NFCFangrui Song2019-04-119-45/+32
| | | | llvm-svn: 358161
* [MCA] Remove wrong comments from a test. NFCAndrea Di Biagio2019-04-111-3/+0
| | | | llvm-svn: 358160
* [clangd] Use identifiers in file as completion candidates when build is not ↵Eric Liu2019-04-1114-85/+299
| | | | | | | | | | | | | | | | | | | | | | ready. Summary: o Lex the code to get the identifiers and put them into a "symbol" index. o Adds a new completion mode without compilation/sema into code completion workflow. o Make IncludeInserter work even when no compile command is present, by avoiding inserting non-verbatim headers. Reviewers: sammccall Reviewed By: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, jdoerfert, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D60126 llvm-svn: 358159
* [ADT] Fix template parameter names of llvm::{upper|lower}_boundIlya Biryukov2019-04-111-12/+16
| | | | | | | | | | | | | | | | | | Summary: Rename template parameter for a search value from 'ForwardIt' to 'T'. While here, also use perfect forwarding to pass the value to STL algos. Reviewers: sammccall Reviewed By: sammccall Subscribers: dexonsmith, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60510 llvm-svn: 358158
* [clangd] Include compile command heuristic in logsSam McCall2019-04-112-2/+5
| | | | llvm-svn: 358157
* try to fix the sphinx build some moreHans Wennborg2019-04-1111-0/+22
| | | | llvm-svn: 358156
* Fix two sphinx warningsHans Wennborg2019-04-111-2/+2
| | | | llvm-svn: 358155
* Try to fix the shpinx buildHans Wennborg2019-04-119-9/+9
| | | | llvm-svn: 358154
* [llvm-exegesis] Fix serialization/deserialization of special NoRegister ↵Roman Lebedev2019-04-112-7/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | register (PR41448) Summary: A *lot* of instructions have this special register. It seems this never really worked, but i finally noticed it only because it happened to break for `CMOV16rm` instruction. We serialized that register as "" (empty string), which is naturally 'ignored' during deserialization, so we re-create a `MCInst` with too few operands. And when we then happened to try to resolve variant sched class for this mis-serialized instruction, and the variant predicate tried to read an operand that was out of bounds since we got less operands, we crashed. Fixes [[ https://bugs.llvm.org/show_bug.cgi?id=41448 | PR41448 ]]. Reviewers: craig.topper, courbet Reviewed By: courbet Subscribers: tschuett, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60517 llvm-svn: 358153
* Add { } to silence compiler warning [NFC]Mikael Holmen2019-04-111-3/+3
| | | | | | | | | | | | | | | At least clang 3.6 warns on the original code: ../tools/clang/lib/CodeGen/CGNonTrivialStruct.cpp:829:34: error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces] return std::array<Address, 1>({Address(nullptr, CharUnits::Zero())}); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ { } ../tools/clang/lib/CodeGen/CGNonTrivialStruct.cpp:833:34: error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces] return std::array<Address, 2>({Address(nullptr, CharUnits::Zero()), ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 errors generated. llvm-svn: 358152
* [OpenCL] Re-fix invalid address space generation for clk_event_t arguments ↵Alexey Sotkin2019-04-112-15/+30
| | | | | | | | | | | | | | | | | | | of enqueue_kernel builtin function Summary: https://reviews.llvm.org/D53809 fixed wrong address space(assert in debug build) generated for event_ret argument. But exactly the same problem exists for event_wait_list argument. This patch should fix both. Reviewers: Anastasia, yaxunl Reviewed By: Anastasia Subscribers: kristina, ebevhan, cfe-commits Differential Revision: https://reviews.llvm.org/D59985 llvm-svn: 358151
* [RISCV] Put data smaller than eight bytes to small data sectionShiva Chen2019-04-118-0/+186
| | | | | | | | | | | Because of gp = sdata_start_address + 0x800, gp with signed twelve-bit offset could covert most of the small data section. Linker relaxation could transfer the multiple data accessing instructions to a gp base with signed twelve-bit offset instruction. Differential Revision: https://reviews.llvm.org/D57493 llvm-svn: 358150
* Prospective test fix in response to r358104.John McCall2019-04-111-1/+1
| | | | llvm-svn: 358149
* [DWARF] Set discriminator to 0 for DW_LNS_copyFangrui Song2019-04-112-5/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Make DW_LNS_copy set the discriminator register to 0, to conform to DWARF 4 & 5: "Then it sets the discriminator register to 0, and sets the basic_block, prologue_end and epilogue_begin registers to false." Because all of DW_LNE_end_sequence, DN_LNS_copy, and special opcodes reset discriminator to 0, we can move discriminator=0 to appendRowToMatrix. Also, make DW_LNS_copy print before appending the row, as it is similar to a address+=0,line+=0 special opcode, which prints before appending the row. Reviewers: dblaikie, probinson, aprantl Reviewed By: dblaikie Subscribers: danielcdh, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60364 llvm-svn: 358148
* Remove repeated words from BuildingLibcxx.rstJonathan Metzman2019-04-101-1/+1
| | | | | | | | | | | | | | Summary: Remove repeated words from docs. Reviewers: phosek Reviewed By: phosek Subscribers: christof Differential Revision: https://reviews.llvm.org/D60530 llvm-svn: 358147
* Fix a hang when lowering __builtin_dynamic_object_sizeErik Pilkington2019-04-104-7/+54
| | | | | | | | | | | | | If the ObjectSizeOffsetEvaluator fails to fold the object size call, then it may litter some unused instructions in the function. When done repeatably in InstCombine, this results in an infinite loop. Fix this by tracking the set of instructions that were inserted, then removing them on failure. rdar://49172227 Differential revision: https://reviews.llvm.org/D60298 llvm-svn: 358146
* [NFC] Use clearer naming for local variablesJF Bastien2019-04-103-25/+25
| | | | llvm-svn: 358145
* [AArch64][GlobalISel] Make <2 x p0> = G_BUILD_VECTOR legal.Amara Emerson2019-04-103-144/+51
| | | | | | The existing isel support already works for p0 once the legalizer accepts it. llvm-svn: 358144
* [AArch64][GlobalISel] Add legalizer support for <8 x s16> and <16 x s8> G_ADD.Amara Emerson2019-04-103-1/+108
| | | | llvm-svn: 358143
* [AArch64][GlobalISel] Scalarize vector SDIV.Amara Emerson2019-04-103-5/+36
| | | | llvm-svn: 358142
* [X86] Add SSE1 command line to atomic-fp.ll and atomic-non-integer.ll. NFCCraig Topper2019-04-102-203/+505
| | | | llvm-svn: 358141
* [X86] Autogenerate complete checks. NFCCraig Topper2019-04-101-130/+824
| | | | llvm-svn: 358140
* [X86] Teach foldMaskedShiftToScaledMask to look through an any_extend from ↵Craig Topper2019-04-102-26/+46
| | | | | | | | | | | | | | i32 to i64 between the and & shl foldMaskedShiftToScaledMask tries to reorder and & shl to enable the shl to fold into an LEA. But if there is an any_extend between them it doesn't work. This patch modifies the code to look through any_extend from i32 to i64 when the and mask only uses bits that weren't from the extended part. This will prevent a regression from D60358 caused by 64-bit SHL being narrowed to 32-bits when their upper bits aren't demanded. Differential Revision: https://reviews.llvm.org/D60532 llvm-svn: 358139
* [X86] Make _Int instructions the preferred instructon for the assembly ↵Craig Topper2019-04-108-159/+164
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | parser and disassembly parser to remove inconsistencies between VEX and EVEX. Many of our instructions have both a _Int form used by intrinsics and a form used by other IR constructs. In the EVEX space the _Int versions usually cover all the capabilities include broadcasting and rounding. While the other version only covers simple register/register or register/load forms. For this reason in EVEX, the non intrinsic form is usually marked isCodeGenOnly=1. In the VEX encoding space we were less consistent, but usually the _Int version was the isCodeGenOnly version. This commit makes the VEX instructions match the EVEX instructions. This was done by manually studying the AsmMatcher table so its possible I missed some cases, but we should be closer now. I'm thinking about using the isCodeGenOnly bit to simplify the EVEX2VEX tablegen code that disambiguates the _Int and non _Int versions. Currently it checks register class sizes and Record the memory operands come from. I have some other changes I was looking into for D59266 that may break the memory check. I had to make a few scheduler hacks to keep the _Int versions from being treated differently than the non _Int version. Differential Revision: https://reviews.llvm.org/D60441 llvm-svn: 358138
* Fix undefined behavior in DWARFASTParser::ParseChildArrayInfo()Adrian Prantl2019-04-102-3/+5
| | | | | | | PR40827: https://bugs.llvm.org/show_bug.cgi?id=40827 <rdar://problem/48729057> llvm-svn: 358137
* Fix a test, NFCErik Pilkington2019-04-102-38/+12
| | | | | | | This test was duplicated, and the last declaration had some syntax errors since the invalid attribute caused the @implementation to be skipped by the parser. llvm-svn: 358136
* [NFC] Remove ASCII lines from commentsJonas Devlieghere2019-04-10889-10287/+0
| | | | | | | | | | | | | | | | | | | | | | | A lot of comments in LLDB are surrounded by an ASCII line to delimit the begging and end of the comment. Its use is not really consistent across the code base, sometimes the lines are longer, sometimes they are shorter and sometimes they are omitted. Furthermore, it looks kind of weird with the 80 column limit, where the comment actually extends past the line, but not by much. Furthermore, when /// is used for Doxygen comments, it looks particularly odd. And when // is used, it incorrectly gives the impression that it's actually a Doxygen comment. I assume these lines were added to improve distinguishing between comments and code. However, given that todays editors and IDEs do a great job at highlighting comments, I think it's worth to drop this for the sake of consistency. The alternative is fixing all the inconsistencies, which would create a lot more churn. Differential revision: https://reviews.llvm.org/D60508 llvm-svn: 358135
* Check i < FD->getNumParams() before queryingDmitri Gribenko2019-04-103-1/+25
| | | | | | | | | | | | | | | | | | | | | | Summary: As was already stated in a previous comment, the parameter isn't necessarily referring to one of the DeclContext's parameter. We should check the index is within the range to avoid out-of-boundary access. Reviewers: gribozavr, rsmith, lebedev.ri Reviewed By: gribozavr, rsmith Subscribers: lebedev.ri, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D60055 Patch by Violet. llvm-svn: 358134
* [clang][ASTContext] Try to exit early before loading serialized comments ↵Jan Korous2019-04-101-18/+22
| | | | | | | | | | from AST files Loading external comments is expensive. This change probably doesn't apply to common cases but is almost for free and would save some work in case none of the declaration needs external comments to be loaded. Differential Revision: https://reviews.llvm.org/D60493 llvm-svn: 358133
* Add IRGen APIs to fetch ctor/dtor helper functions for non-trivial structs.John McCall2019-04-102-0/+144
| | | | | | Patch by Tony Allevato! llvm-svn: 358132
* [pstl] Move to single underscore-capital for macros and include guardsLouis Dionne2019-04-1063-495/+495
| | | | | | | | | | | | | | Summary: Per the LLVM convention. Reviewers: rodgert Subscribers: jkorous, dexonsmith, jdoerfert, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D60521 llvm-svn: 358131
* [pstl] Fix incorrect forward declaration of __pattern_unique_copyLouis Dionne2019-04-101-3/+5
| | | | | | | The forward declaration didn't take an execution policy, but the definition does. llvm-svn: 358130
* [pstl] Add missing forward declarations for equalLouis Dionne2019-04-101-5/+25
| | | | | | | We added the 4-iterator variants of std::equal in r357613, but we forgot to add the corresponding forward declarations. llvm-svn: 358129
OpenPOWER on IntegriCloud