summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* minidump: Use llvm memory info list parserPavel Labath2019-10-114-123/+26
| | | | llvm-svn: 374532
* ProcessInstanceInfoMatch: Don't match processes with no name if a name match ↵Pavel Labath2019-10-114-18/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | was requested, take 2 Summary: The previous attempt at making nameless process not match when searching for a given name failed because the macos implementation was depending on this detail in its partial matching strategy. Doing partial matching to avoid expensive lookups is a perfectly valid thing to do, the way it was implemented seems somewhat unexpected. This patch implements it differently by providing special methods in the ProcessInstanceInfoMatch which match only a subset of fields, and changes mac host code to use those instead. Then, it re-applies r373925 to get make the ProcessInstanceInfoMatch with a name *not* match a nameless process. Reviewers: JDevlieghere, teemperor, jingham Subscribers: wallace, lldb-commits Differential Revision: https://reviews.llvm.org/D68631 llvm-svn: 374529
* [Windows] Use information from the PE32 exceptions directory to construct ↵Aleksandr Urakov2019-10-1119-11/+1149
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | unwind plans This patch adds an implementation of unwinding using PE EH info. It allows to get almost ideal call stacks on 64-bit Windows systems (except some epilogue cases, but I believe that they can be fixed with unwind plan disassembly augmentation in the future). To achieve the goal the CallFrameInfo abstraction was made. It is based on the DWARFCallFrameInfo class interface with a few changes to make it less DWARF-specific. To implement the new interface for PECOFF object files the class PECallFrameInfo was written. It uses the next helper classes: - UnwindCodesIterator helps to iterate through UnwindCode structures (and processes chained infos transparently); - EHProgramBuilder with the use of UnwindCodesIterator constructs EHProgram; - EHProgram is, by fact, a vector of EHInstructions. It creates an abstraction over the low-level unwind codes and simplifies work with them. It contains only the information that is relevant to unwinding in the unified form. Also the required unwind codes are read from the object file only once with it; - EHProgramRange allows to take a range of EHProgram and to build an unwind row for it. So, PECallFrameInfo builds the EHProgram with EHProgramBuilder, takes the ranges corresponding to every offset in prologue and builds the rows of the resulted unwind plan. The resulted plan covers the whole range of the function except the epilogue. Reviewers: jasonmolenda, asmith, amccarth, clayborg, JDevlieghere, stella.stamenova, labath, espindola Reviewed By: jasonmolenda Subscribers: leonid.mashinskiy, emaste, mgorny, aprantl, arichardson, MaskRay, lldb-commits, llvm-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D67347 llvm-svn: 374528
* Insert module constructors in a module passVitaly Buka2019-10-119-55/+102
| | | | | | | | | | | | | | | | | | | | | Summary: If we insert them from function pass some analysis may be missing or invalid. Fixes PR42877. Reviewers: eugenis, leonardchan Reviewed By: leonardchan Subscribers: hiraditya, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D68832 > llvm-svn: 374481 Signed-off-by: Vitaly Buka <vitalybuka@google.com> llvm-svn: 374527
* [LLDB] [Driver] Use llvm::InitLLVM to do unicode argument conversion on WindowsMartin Storsjo2019-10-111-17/+3
| | | | | | | | | This avoids the currently MSVC specific codepath of using the wchar entry point and converting that to utf8. Differential Revision: https://reviews.llvm.org/D68770 llvm-svn: 374526
* [lldb] Fix crash in CxxModuleHandler when std module is emptyRaphael Isemann2019-10-117-4/+88
| | | | | | | | | | | | | | | | | | | | We currently don't handle the error in the Expected we get when searching for an equal local DeclContext. Usually this can't happen as this would require that we have a STL container and we can find libc++'s std module, but when we load the module in the expression parser the module doesn't even contain the 'std' namespace. The only way I see to test this is by having a fake 'std' module that requires a special define to actually provide its contents, while it will just be empty (that is, it doesn't even contain the 'std' namespace) without that define. LLDB currently doesn't know about that define in the expression parser, so it will load the wrong 'empty' module which should trigger this error. Also removed the 'auto' for that variable as the function name doesn't make it obvious that this is an expected and not just a optional/ptr (which is how this slipped in from the start). llvm-svn: 374525
* [TableGen] Fix a bug that MCSchedClassDesc is interfered between different ↵QingShan Zhang2019-10-113-1/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SchedModel Assume that, ModelA has scheduling resource for InstA and ModelB has scheduling resource for InstB. This is what the llvm::MCSchedClassDesc looks like: llvm::MCSchedClassDesc ModelASchedClasses[] = { ... InstA, 0, ... InstB, -1,... }; llvm::MCSchedClassDesc ModelBSchedClasses[] = { ... InstA, -1,... InstB, 0,... }; The -1 means invalid num of macro ops, while it is valid if it is >=0. This is what we look like now: llvm::MCSchedClassDesc ModelASchedClasses[] = { ... InstA, 0, ... InstB, 0,... }; llvm::MCSchedClassDesc ModelBSchedClasses[] = { ... InstA, 0,... InstB, 0,... }; And compiler hit the assertion here because the SCDesc is valid now for both InstA and InstB. Differential Revision: https://reviews.llvm.org/D67950 llvm-svn: 374524
* [X86] Add v8i64->v8i8 ssat/usat/packus truncate tests to ↵Craig Topper2019-10-111-0/+103
| | | | | | | | | | | min-legal-vector-width.ll I wonder if we should split the v8i8 stores in order to form two v4i8 saturating truncating stores. This would remove the unpckl needed to concatenated the v4i8 results to make a single store. llvm-svn: 374519
* [ADT][Statistics] Fix test after rL374490Kadir Cetinkaya2019-10-111-0/+2
| | | | llvm-svn: 374518
* Fix modules build for r374337Pavel Labath2019-10-111-0/+2
| | | | | | | | | | A modules build failed with the following error: call to function 'operator&' that is neither visible in the template definition nor found by argument-dependent lookup Fix that by declaring the appropriate operators in the llvm::minidump namespace. llvm-svn: 374517
* [X86] Always define the tzcnt intrinsics even when _MSC_VER is defined.Craig Topper2019-10-113-130/+144
| | | | | | | | | | | | These intrinsics use llvm.cttz intrinsics so are always available even without the bmi feature. We already don't check for the bmi feature on the intrinsics themselves. But we were blocking the include of the header file with _MSC_VER unless BMI was enabled on the command line. Fixes PR30506. llvm-svn: 374516
* [PowerPC] Remove assertion "Shouldn't overwrite a register before it is killed"Yi-Hong Lyu2019-10-112-8/+31
| | | | | | | | | | | | | | The assertion is everzealous and fail tests like: renamable $x3 = LI8 0 STD renamable $x3, 16, $x1 renamable $x3 = LI8 0 Remove the assertion since killed flag of $x3 is not mandentory. Differential Revision: https://reviews.llvm.org/D68344 llvm-svn: 374515
* [NFC] run specific pass instead of whole -O3 pipeline for popcount ↵Chen Zheng2019-10-111-5/+5
| | | | | | recoginzation testcase. llvm-svn: 374514
* [InstCombine] recognize popcount.Chen Zheng2019-10-113-5/+271
| | | | | | | | | This patch recognizes popcount intrinsic according to algorithm from website http://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetParallel Differential Revision: https://reviews.llvm.org/D68189 llvm-svn: 374512
* [libc++] Fix linker script generationPetr Hosek2019-10-111-1/+3
| | | | | | | | | | Handle the case when libc++abi and libunwind are being built together with libc++ in the runtimes build. This logic was used in the previous implementation but dropped in r374116. Differential Revision: https://reviews.llvm.org/D68791 llvm-svn: 374510
* [X86] Add a DAG combine to turn v16i16->v16i8 VTRUNCUS+store into a ↵Craig Topper2019-10-112-2/+14
| | | | | | saturating truncating store. llvm-svn: 374509
* [X86] Add test case for trunc_packus_v16i32_v16i8_store to ↵Craig Topper2019-10-111-1/+21
| | | | | | | | min-legal-vector-width.ll We aren't folding the vpmovuswb into the store. llvm-svn: 374507
* [CVP] Remove a masking operation if range information implies it's a noopPhilip Reames2019-10-114-3/+155
| | | | | | | | | | This is really a known bits style transformation, but known bits isn't context sensitive. The particular case which comes up happens to involve a range which allows range based reasoning to eliminate the mask pattern, so handle that case specifically in CVP. InstCombine likes to generate the mask-by-low-bits pattern when widening an arithmetic expression which includes a zext in the middle. Differential Revision: https://reviews.llvm.org/D68811 llvm-svn: 374506
* [X86] Add more packus/ssat/usat truncate tests from legal vectors to less ↵Craig Topper2019-10-113-3/+4134
| | | | | | | | than 128-bit vectors. Some of these have sub-optimal codegen for avx512 relative to avx2. llvm-svn: 374505
* [Polly] Fix formatting violation. NFC.Volodymyr Sapsai2019-10-111-3/+1
| | | | llvm-svn: 374504
* Revert 374481 "[tsan,msan] Insert module constructors in a module pass"Nico Weber2019-10-119-102/+55
| | | | | | | CodeGen/sanitizer-module-constructor.c fails on mac and windows, see e.g. http://lab.llvm.org:8011/builders/clang-x64-windows-msvc/builds/11424 llvm-svn: 374503
* [CUDA][HIP} Add a test for constexpr default ctorYaxun Liu2019-10-111-0/+33
| | | | | | Differential Revision: https://reviews.llvm.org/D68753 llvm-svn: 374502
* [Stats] More polly fixes following llvm::Statistic changes in r374490.Volodymyr Sapsai2019-10-112-5/+5
| | | | llvm-svn: 374501
* [JITLink] Disable the MachO/AArch64 testcase while investigating bot failures.Lang Hames2019-10-111-2/+2
| | | | | | | | The windows bots are failing due to a memory layout error. Temporarily disabling while I investigate whether this can be worked around, or whether the test should be disabled on Windows. llvm-svn: 374500
* [JITLink] Fix MachO/arm64 GOTPAGEOFF encoding.Lang Hames2019-10-111-2/+5
| | | | | | | | The original implementation failed to shift the immediate down. This should fix some of the bot failures due to r374476. llvm-svn: 374499
* [Attributor][FIX] Do not replace musstail calls with constantJohannes Doerfert2019-10-112-1/+6
| | | | llvm-svn: 374498
* [Stats] Fix polly build due to change in llvm::Statistic constructor in r374490.Volodymyr Sapsai2019-10-111-3/+1
| | | | llvm-svn: 374497
* Fix assertion failure for a cv-qualified array as a non-type templateRichard Smith2019-10-112-4/+23
| | | | | | | | | | parameter type. We were both failing to decay the array type to a pointer and failing to remove the top-level cv-qualifications. Fix this by decaying array parameters even if the parameter type is dependent. llvm-svn: 374496
* AMDGPU: Move SelectFlatOffset back into AMDGPUISelDAGToDAGMatt Arsenault2019-10-113-62/+43
| | | | llvm-svn: 374495
* Get ClangdXPC.framework building (barely) with CMake's Xcode generatorJordan Rose2019-10-111-2/+2
| | | | | | | | | | | | | | | | | | | The output directories for CMake's Xcode project generator are specific to the configuration, and so looking in CMAKE_LIBRARY_OUTPUT_DIRECTORY isn't going to work. Fortunately, CMake already provides generator expressions to find the output of a given target. I call this "barely" building because the built framework isn't going to respect the configuration; that is, I can't have both Debug and RelWithDebInfo variants of ClangdXPC.framework at the same time like I can with normal library or executable targets. To do that we'd have to put the framework in a configuration-specific output directory or use CMake's native support for frameworks instead. https://reviews.llvm.org/D68846 llvm-svn: 374494
* [Stats] Add ALWAYS_ENABLED_STATISTIC enabled regardless of LLVM_ENABLE_STATS.Volodymyr Sapsai2019-10-113-63/+76
| | | | | | | | | | | | | | | | | | | | | The intended usage is to measure relatively expensive operations. So the cost of the statistic is negligible compared to the cost of a measured operation and can be enabled all the time without impairing the compilation time. rdar://problem/55715134 Reviewers: dsanders, bogner, rtereshin Reviewed By: dsanders Subscribers: hiraditya, jkorous, dexonsmith, ributzka, cfe-commits, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68252 llvm-svn: 374490
* Include whether the destructor is constexpr in -ast-dump output for aRichard Smith2019-10-111-0/+1
| | | | | | clss. llvm-svn: 374488
* [X86] Improve the AVX512 bailout in combineTruncateWithSat to allow pack ↵Craig Topper2019-10-115-198/+97
| | | | | | | | | | instructions in more situations. If we don't have VLX we won't end up selecting a saturating truncate for 256-bit or smaller vectors so we should just use the pack lowering. llvm-svn: 374487
* [X86] Update trunc_packus_v32i32_v32i8 test in min-legal-vector-width.ll to ↵Craig Topper2019-10-111-12/+19
| | | | | | | | | use a load for the large type and add the min-legal-vector-width attribute. The attribute is needed to avoid zmm registers. Using memory avoids argument splitting for large vectors. llvm-svn: 374486
* Move most CXXRecordDecl::DefinitionData bit-fields out into a separateRichard Smith2019-10-116-424/+273
| | | | | | | | | | | file. Reduces duplication and thereby reduces the risk that someone will forget to update one of these places, as I did when adding DefaultedDestructorIsConstexpr (though I've been unable to produce a testcase for which that matters so far). llvm-svn: 374484
* Clean up format in cmake fileHaibo Huang2019-10-111-64/+64
| | | | | | | | | | | | Summary: Makes the indent consistent to other part of the file. Subscribers: mgorny, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D68842 llvm-svn: 374483
* gn build: Merge r374476GN Sync Bot2019-10-101-0/+1
| | | | llvm-svn: 374482
* [tsan,msan] Insert module constructors in a module passVitaly Buka2019-10-109-55/+102
| | | | | | | | | | | | | | | | | | Summary: If we insert them from function pass some analysis may be missing or invalid. Fixes PR42877. Reviewers: eugenis, leonardchan Reviewed By: leonardchan Subscribers: hiraditya, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D68832 llvm-svn: 374481
* [msan, NFC] Move option parsing into constructorVitaly Buka2019-10-102-16/+17
| | | | llvm-svn: 374480
* Fix compilation warning due to typo.Michael Liao2019-10-101-1/+1
| | | | llvm-svn: 374479
* [tooling] Fix assertion on MacOSX.Michael Liao2019-10-101-1/+6
| | | | llvm-svn: 374478
* [JITLink] Add an initial implementation of JITLink for MachO/AArch64.Lang Hames2019-10-106-0/+1138
| | | | | | | | | This implementation has support for all relocation types except TLV. Compact unwind sections are not yet supported, so exceptions/unwinding will not work. llvm-svn: 374476
* [JITLink] Move MachO/x86 got test further down in the data section.Lang Hames2019-10-101-12/+12
| | | | | | 'named_data' should be the first symbol in the data section. llvm-svn: 374475
* docs/DeveloperPolicy: Add instructions for requesting GitHub commit accessTom Stellard2019-10-101-0/+20
| | | | | | | | | | Subscribers: mehdi_amini, jtony, xbolva00, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66840 llvm-svn: 374474
* Change test case so that it accepts backslashes in file path, in the case ↵Amy Huang2019-10-101-2/+2
| | | | | | that the test runs on Windows llvm-svn: 374473
* Fix check-interception link error in compiler-rt debug modeReid Kleckner2019-10-101-1/+4
| | | | llvm-svn: 374472
* [MemorySSA] Update Phi simplification.Alina Sbirlea2019-10-102-5/+62
| | | | | | | | | | When simplifying a Phi to the unique value found incoming, check that there wasn't a Phi already created to break a cycle. If so, remove it. Resolves PR43541. Some additional nits included. llvm-svn: 374471
* [tooling] Teach Tooling to understand compilation with offloading.Michael Liao2019-10-102-1/+27
| | | | | | | | | | | | | | | | Summary: - So far, we only recognize the host compilation with offloading and skip the offloading part. Reviewers: tra, yaxunl Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D68660 llvm-svn: 374470
* [lldb-test] Remove unused headerAlex Langford2019-10-101-1/+0
| | | | llvm-svn: 374468
* Fix help message for -ffp-contractYaxun Liu2019-10-101-1/+2
| | | | | | Differential Revision: https://reviews.llvm.org/D68823 llvm-svn: 374467
OpenPOWER on IntegriCloud