summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [X86][GISel] Fix typo in comment. NFCCraig Topper2019-10-261-1/+1
|
* Reland "[Clang][Bundler] Error reporting improvements"Sergey Dmitriev2019-10-252-212/+229
| | | | | | | | - Changed FileHandler read/write methods to return llvm::Error - Using unified way of reporting errors - Removed trailing '.' from the error messages Differential Revision: https://reviews.llvm.org/D67031
* [ORC] Avoid SymbolStringPtr copies in DynamicLibrarySearchGenerator predicate.Lang Hames2019-10-251-1/+1
| | | | | Pass SymbolStringPtr by const-ref to avoid copies (which require atomic ref-count operations).
* Revert "[Clang][Bundler] Error reporting improvements"Sergey Dmitriev2019-10-252-229/+212
| | | | This reverts commit dd501045cdea1c80b6788f0266d2a79f8b412eea.
* [NFC] Add a tablegen node for the root of the AST node hierarchies.John McCall2019-10-259-465/+514
| | | | | This is useful for the property databases we want to add for abstract serialization, since root classes can have interesting properties.
* Add Record::getValueAsOptionalDef().John McCall2019-10-252-0/+21
| | | | | | Using `?` as an optional marker is very useful in Clang's AST-node emitters because otherwise we need a separate class just to encode the presence or absence of a base node reference.
* [Clang][Bundler] Error reporting improvementsSergey Dmitriev2019-10-252-212/+229
| | | | | | | | - Changed FileHandler read/write methods to return llvm::Error - Using unified way of reporting errors - Removed trailing '.' from the error messages Differential Revision: https://reviews.llvm.org/D67031
* [SDAG] fold extract_vector_elt with undef indexSanjay Patel2019-10-254-34/+18
| | | | | | | | | | | This makes the DAG behavior consistent with IR's extractelement after: rGb32e4664a715 https://bugs.llvm.org/show_bug.cgi?id=42689 I've tried to maintain test intent for WebAssembly. The AMDGPU test is trying to test for crashing or other bad behavior, but I'm not sure if that's possible after this change.
* [lit] Move sharding logic into separate functionJulian Lettner2019-10-254-23/+36
|
* [libFuzzer] Enable extra counters for Fuchsia.Matt Morehouse2019-10-251-1/+1
|
* Fix after 738af7a6241c98164625b9cd1ba9f8af4e36f197Adrian McCarthy2019-10-251-1/+5
| | | | Default implementation of a new virtual method wasn't returning a value.
* Use __builtin_strlen in constexpr StringRef ctor with MSVCReid Kleckner2019-10-251-1/+7
| | | | | | | | | MSVC supports it. Fixes the major MSVC compile time regression introduced in r369961. Now clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp compiles in 18s instead of 7+ minutes. Fixes PR43369
* [globalisel] Restructure the GlobalISel documentationDaniel Sanders2019-10-2512-945/+949
| | | | | There's a couple minor deletions amongst this but 99% of it is just moving the documentation around to prepare the way for more meaningful changes.
* [LLDB] Fix inline variable only used in assertion. (NFC)Jonas Devlieghere2019-10-251-2/+1
| | | | | | | | | This prevents unused variable warning/error in -DNDEBUG builds. The variable was introduced in 5934cd11ea3e. Patch by: Shu-Chun Weng Differential revision: https://reviews.llvm.org/D69451
* [clang][DependencyScanning] 80-col.Michael Spencer2019-10-252-6/+11
|
* lldb/minidump: Refactor memory region computation codePavel Labath2019-10-259-187/+202
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The goal of this refactor is to enable ProcessMinidump to take into account the loaded modules and their sections when computing the permissions of various ranges of memory, as discussed in D66638. This patch moves some of the responsibility for computing the ranges from MinidumpParser into ProcessMinidump. MinidumpParser still does the parsing, but ProcessMinidump becomes responsible for answering the actual queries about memory ranges. This will enable it (in a follow-up patch) to augment the information obtained from the parser with data obtained from actual object files. The changes in the actual code are fairly straight-forward and just involve moving code around. MinidumpParser::GetMemoryRegions is renamed to BuildMemoryRegions to emphasize that it does no caching. The only new thing is the additional bool flag returned from this function. This indicates whether the returned regions describe all memory mapped into the target process. Data obtained from /proc/maps and the MemoryInfoList stream is considered to be exhaustive. Data obtained from Memory(64)List is not. This will be used to determine whether we need to augment the data or not. This reshuffle means that it is no longer possible/easy to test some of this code via unit tests, as constructing a ProcessMinidump instance is hard. Instead, I update the unit tests to only test the parsing of the actual data, and test the answering of queries through a lit test using the "memory region" command. The patch also includes some tweaks to the MemoryRegion class to make the unit tests easier to write. Reviewers: amccarth, clayborg Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D69035
* [lit] Don't fail when printing test output with special charsJoel E. Denny2019-10-254-3/+35
| | | | | | | | | This addresses a UnicodeEncodeError when using Python 3.6.5 in Windows 10. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D69207
* lldb/COFF: Create a separate "section" for the file headerPavel Labath2019-10-253-38/+45
| | | | | | | | | | | | | | | | | | | | | | | | In an attempt to ensure that every part of the module's memory image is accounted for, D56537 created a special "container section" spanning the entire image. While that seemed reasonable at the time (and it still mostly does), it did create a problem of what to put as the "file size" of the section, because the image is not continuous on disk, as we generally assume (which is why I put zero there). Additionally, this arrangement makes it unclear what kind of permissions should be assigned to that section (which is what my next patch does). To get around these, this patch partially reverts D56537, and goes back to top-level sections. Instead, what I do is create a new "section" for the object file header, which is also being loaded into memory, though its not considered to be a section in the strictest sense. This makes it possible to correctly assign file size section, and we can later assign permissions to it as well. Reviewers: amccarth, mstorsjo Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D69100
* [AMDGPU] Enable SGPR copy foldingStanislav Mekhanoshin2019-10-253-14/+59
| | | | | | | | | | | | | That used to fail in the last testcase function because after %0:sreg_64.sub0 was folded into %3:sreg_32_xm0_xexec COPY, it was further folded into S_STORE_DWORD_IMM. Its legal effective subreg class is SReg_32 while instruction expects more restricted SReg_32_XM0_EXEC. However, SIInstrInfo::isLegalRegOperand() passed the legality check and it was caught in the verifier. Borrowed code from the verifier to check for RC legality. Differential Revision: https://reviews.llvm.org/D69445
* [globalisel] Fix typo in 'Add LLVMDev 2019 talks and links for the 2017 talks'Daniel Sanders2019-10-251-1/+1
|
* [globalisel] Add LLVMDev 2019 talks and links for the 2017 talksDaniel Sanders2019-10-251-2/+3
|
* [BPF] fix a CO-RE issue with -mattr=+alu32Yonghong Song2019-10-2549-71/+264
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ilya Leoshkevich (<iii@linux.ibm.com>) reported an issue that with -mattr=+alu32 CO-RE has a segfault in BPF MISimplifyPatchable pass. The pattern will be transformed by MISimplifyPatchable pass looks like below: r5 = ld_imm64 @"b:0:0$0:0" r2 = ldw r5, 0 ... r2 ... // use r2 The pass will remove the intermediate 'ldw' instruction and replacing all r2 with r5 likes below: r5 = ld_imm64 @"b:0:0$0:0" ... r5 ... // use r5 Later, the ld_imm64 insn will be replaced with r5 = <patched immediate> for field relocation purpose. With -mattr=+alu32, the input code may become r5 = ld_imm64 @"b:0:0$0:0" w2 = ldw32 r5, 0 ... w2 ... // use w2 Replacing "w2" with "r5" is incorrect and will trigger compiler internal errors. To fix the problem, if the register class of ldw* dest register is sub_32, we just replace the original ldw* register with: w2 = w5 Directly replacing all uses of w2 with in-place constructed w5 for the use operand seems not working in all cases. The latest kernel will have -mattr=+alu32 on by default, so added this flag to all CORE tests. Tested with latest kernel bpf-next branch as well with this patch. Differential Revision: https://reviews.llvm.org/D69438
* [x86] add tests for extractelement with undef index (PR42689); NFCSanjay Patel2019-10-251-0/+36
|
* Update version number in llvm python bindingsDavid Tenty2019-10-251-2/+2
| | | | | | | | | | | | | | | | Summary: The version number has come out of sync with what is in CMakeLists.txt, causing loading the bindings to fail. Reviewers: AustinWells, abhina.sree Reviewed By: AustinWells Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69436
* Add the ability to pass extra args to a Python breakpoint callback.Jim Ingham2019-10-2526-137/+467
| | | | | | | | | | | | | | | | | For example, it is pretty easy to write a breakpoint command that implements "stop when my caller is Foo", and it is pretty easy to write a breakpoint command that implements "stop when my caller is Bar". But there's no way to write a generic "stop when my caller is..." function, and then specify the caller when you add the command to a breakpoint. With this patch, you can pass this data in a SBStructuredData dictionary. That will get stored in the PythonCommandBaton for the breakpoint, and passed to the implementation function (if it has the right signature) when the breakpoint is hit. Then in lldb, you can say: (lldb) break com add -F caller_is -k caller_name -v Foo More generally this will allow us to write reusable Python breakpoint commands. Differential Revision: https://reviews.llvm.org/D68671
* Revert "[ARM] Uses "Sun Style" syntax for section switching"Jian Cai2019-10-253-18/+1
| | | | This reverts commit 03de2f84fc4acf06c719cd007b5459c9d4d0a20c.
* [AMDGPU] Fixed asan failure in SIFoldOperandsStanislav Mekhanoshin2019-10-251-3/+4
| | | | | | | Both tryFoldOMod() and tryFoldClamp() remove original instruction, so the check MI.modifiesRegister() may use a deleted MI. Differential Revision: https://reviews.llvm.org/D69448
* GlobalISel: Implement widenScalar for G_INSERT_VECTOR_ELTMatt Arsenault2019-10-252-0/+73
|
* [Alignment][NFC] Convert AllocaInst to MaybeAlignGuillaume Chatelet2019-10-258-39/+39
| | | | | | | | | | | | | | | | | Summary: This is patch is part of a series to introduce an Alignment type. See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html See this patch for the introduction of the type: https://reviews.llvm.org/D64790 Reviewers: courbet Reviewed By: courbet Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69301
* [ARM] Uses "Sun Style" syntax for section switchingJian Cai2019-10-253-1/+18
| | | | | | | | | | | | | | | | Summary: Support "Sun Style" syntax for section switching ("#alloc,#write" etc). https://bugs.llvm.org/show_bug.cgi?id=43759 Reviewers: peter.smith, eli.friedman, kristof.beyls, t.p.northover Reviewed By: peter.smith Subscribers: MaskRay, llozano, manojgupta, nickdesaulniers, kristof.beyls, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69296
* AMDGPU/GlobalISel: Handle flat/global G_ATOMIC_CMPXCHGMatt Arsenault2019-10-2512-113/+551
| | | | | | | | Custom lower this to a target instruction with the merge operands. I think it might be better to directly select this and emit a REG_SEQUENCE, but this would be more work since it would require splitting the tablegen patterns for these cases from the other atomics.
* AMDGPU: Fix the broken dominator tree when creating waterfall loop for ↵Changpeng Fang2019-10-252-2/+50
| | | | | | | | | | | | | resource descriptor Summary: In loadSRsrcFromVGPR, if MBB is the same as Succ, Remiander is not the immediate dominator of Succ. Reviewer: arsenm Differential Revision: https://reviews.llvm.org/D69358
* [gicombiner] Add parse failure tests for defs/matchDaniel Sanders2019-10-253-0/+116
|
* Revert "Add an instruction marker field to the ExtraInfo in MachineInstrs."Amy Huang2019-10-2512-347/+173
| | | | | Reverting commit b85b4e5a6f8579c137fecb59a4d75d7bfb111f79 due to some buildbot failures/ out of memory errors.
* [LLD][ThinLTO] Handle GUID collision in import global processingTeresa Johnson2019-10-253-5/+40
| | | | | | | | | | | | | | | | | | | | | | Summary: If there are a GUID collision between two globals checking the summarylist from the import index to make assumption can be dangerous. Do not assume that a GlobalValue that has a GlobalVarSummary actually is a GlobalVariable as it can be another GlobalValue with the same GUID that the summary is connected to. Patch by Joel Klinghed (the_jk@opera.com) Reviewers: evgeny777, tejohnson Reviewed By: tejohnson Subscribers: tejohnson, dblaikie, MaskRay, mehdi_amini, inglorion, hiraditya, steven_wu, dexonsmith, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D67322
* [Alignment][NFC] getMemoryOpCost uses MaybeAlignGuillaume Chatelet2019-10-2518-66/+80
| | | | | | | | | | | | | | | Summary: This is patch is part of a series to introduce an Alignment type. See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html See this patch for the introduction of the type: https://reviews.llvm.org/D64790 Reviewers: courbet Subscribers: nemanjai, hiraditya, kbarton, MaskRay, jsji, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69307
* [CVP] add test for poison propagation bug (PR43802); NFCSanjay Patel2019-10-251-0/+27
|
* build: remove `LLVM_CXX_STD` extension pointSaleem Abdulrasool2019-10-253-31/+15
| | | | | | This extension point is not needed. Provide the equivalent option through `CMAKE_CXX_STANDARD` which mirrors the previous extension point. Rely on CMake to provide the check for the compiler instead.
* [llvm-objcopy][MachO] Add support for min os version load commandsAlexander Shaposhnikov2019-10-256-0/+83
| | | | | | | | Add support for min os version load commands. Test plan: make check-all Differential revision: https://reviews.llvm.org/D69419
* [AMDGPU] Fold AGPR reg_sequence initializersStanislav Mekhanoshin2019-10-252-60/+461
| | | | Differential Revision: https://reviews.llvm.org/D69413
* [AMDGPU] Disallow dpp combining for dpp instructions without Src2 operand ↵vpykhtin2019-10-252-1/+18
| | | | | | (when Src2 is required) Differential revision: https://reviews.llvm.org/D69430
* [Driver] Force llvm to install its handlers before lldb'sVedant Kumar2019-10-251-0/+19
| | | | | | | | | | | | | | | | | | | | | | Install llvm's signal handlers up front to prevent lldb's handlers from being ignored. This is (hopefully) a stopgap workaround. When lldb invokes an llvm API that installs signal handlers (e.g. llvm::sys::RemoveFileOnSignal, possibly via a compiler embedded within lldb), lldb's signal handlers are overriden if llvm is installing its handlers for the first time. To work around llvm's behavior, force it to install its handlers up front, and *then* install lldb's handlers. In practice this is used to prevent lldb test processes from exiting due to IO_ERR when SIGPIPE is received. Note that when llvm installs its handlers, it 1) records the old handlers it replaces and 2) re-installs the old handlers when its new handler is invoked. That means that a signal not explicitly handled by lldb can fall back to being handled by llvm's handler the first time it is received, and then by the default handler the second time it is received. Differential Revision: https://reviews.llvm.org/D69403
* Fix compilation error in ObjectFileMachO::ParseSymtabVedant Kumar2019-10-251-2/+5
|
* [X86] Add a check for SSE2 to the top of combineReductionToHorizontal.Craig Topper2019-10-251-0/+4
| | | | Without this, we can create a PSADBW node that isn't legal.
* [DAGCombiner] widen zext of popcount based on target supportSanjay Patel2019-10-252-9/+18
| | | | | | | | | | | | | | | | zext (ctpop X) --> ctpop (zext X) This is a prerequisite step for canonicalizing in the other direction (narrow the popcount) in IR - PR43688: https://bugs.llvm.org/show_bug.cgi?id=43688 I'm not sure if any other targets are affected, but I found a missing fold for PPC, so added tests based on that. The reason we widen all the way to 64-bit in these tests is because the initial DAG looks something like this: t5: i8 = ctpop t4 t6: i32 = zero_extend t5 <-- created based on IR, but unused node? t7: i64 = zero_extend t5 Differential Revision: https://reviews.llvm.org/D69127
* AMDGPU/GlobalISel: Legalize FDIV16Austin Kerbow2019-10-255-136/+388
| | | | | | | | | | | | Reviewers: arsenm Reviewed By: arsenm Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, rovka, dstuttard, tpr, t-tye, hiraditya, volkan, Petar.Avramovic, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69347
* Crt files are special cased by name when dealing with ctor and dtorSterling Augustine2019-10-252-13/+31
| | | | | | | | | | | | | | sections, but the current code misses certain variants. In particular, those named when clang takes the code path in clang/lib/Driver/ToolChain.cpp:416, where crtfiles are named: clang_rt.<component>-<arch>-<env>.<suffix> Previously, the code only handled: clang_rt.<component>.<suffix> <component>.<suffix> This revision fixes that.
* [NFC][libomptarget] move remaining device specific code out of omptarget-nvptx.hJon Chesterfield2019-10-252-20/+17
| | | | | | | | | | | | | | | | | | Summary: [NFC][libomptarget] move remaining device specific code out of omptarget-nvptx.h Strictly there is one remaining difference wrt amdgcn - parallelLevel is volatile qualified on amdgcn and not on nvptx. Determining whether this is correct - and how to represent the different semantics of 'volatile' under various conditions - is beyond the scope of this code motion patch. Reviewers: ABataev, jdoerfert, grokos Subscribers: openmp-commits Tags: #openmp Differential Revision: https://reviews.llvm.org/D69424
* ValueObject: Fix a crash related to children address type computationPavel Labath2019-10-254-45/+167
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch fixes a crash encountered when debugging optimized code. If some variable has been completely optimized out, but it's value is nonetheless known, the compiler can replace it with a DWARF expression computing its value. The evaluating these expressions results in a eValueTypeHostAddress Value object, as it's contents are computed into an lldb buffer. However, any value that is obtained by dereferencing pointers in this object should no longer have the "host" address type. Lldb had code to account for this, but it was only present in the ValueObjectVariable class. This wasn't enough when the object being described was a struct, as then the object holding the actual pointer was a ValueObjectChild. This caused lldb to dereference the contained pointer in the context of the host process and crash. Though I am not an expert on ValueObjects, it seems to me that this children address type logic should apply to all types of objects (and indeed, applying applying the same logic to ValueObjectChild fixes the crash). Therefore, I move this code to the base class, and arrange it to be run everytime the value is updated. The test case is a reduced and simplified version of the original debug info triggering the crash. Originally we were dealing with a local variable, but as these require a running process to display, I changed it to use a global one instead. Reviewers: jingham, clayborg Subscribers: aprantl, lldb-commits Differential Revision: https://reviews.llvm.org/D69273
* [SCEV] Add a clarifying comment around ExitLimit constructionPhilip Reames2019-10-251-0/+3
|
OpenPOWER on IntegriCloud