- Nov 09, 2020
-
-
Tim Northover authored
The comparison of AttributeSets stopped after seeing a matching type attribute. Subsequent mismatching attributes were not detected causing a crash.
-
QingShan Zhang authored
-
Georgii Rymar authored
This reverts commit ea8a0b8b. It broke BBots. http://lab.llvm.org:8011/#/builders/14/builds/1439 http://lab.llvm.org:8011/#/builders/112/builds/913
-
Georgii Rymar authored
For creating `ELFObjectFile` instances we have the factory method `ELFObjectFile<ELFT>::create(MemoryBufferRef Object)`. The problem of this method is that it scans the section header to locate some sections. When a file is truncated or has broken fields in the ELF header, this approach does not allow us to create the `ELFObjectFile` and dump the ELF header. This is https://bugs.llvm.org/show_bug.cgi?id=40804 This patch suggests a solution - it allows to delay scaning sections in the `ELFObjectFile<ELFT>::create`. It now allows user code to call an object initialization (`initContent()`) later. With that it is possible, for example, for dumpers just to dump the file header and exit. By default initialization is still performed as before, what helps to keep the logic of existent callers untouched. I've experimented with different approaches when worked on this patch. I think this approach is better than doing initialization of sections (i.e. scan of them) on demand, because normally users of `ELFObjectFile` API expect to work with a valid object. In most cases when a section header table can't be read (because of an error), we don't have to continue to work with object. So we probably don't need to implement a more complex API. Differential revision: https://reviews.llvm.org/D90903
-
Georgii Rymar authored
This allows to use the generic fields validation mechanism that we have. The behavior (i.e. an error reported) remains the same.
-
Sam McCall authored
While here, clean up ParsedAST::build a bit: - remove FIXMEs that were fixed long ago by ReplayPreamble - remove redundant if, ClangTidyContext is not actually optional Differential Revision: https://reviews.llvm.org/D90975
-
Michael Liao authored
-
António Afonso authored
While generating yamls for my tests I noticed that the new debug_abbrev format (with multiple table support) was incorrectly assigning id's to the table because it was generating one per abbrev entry in the table. For instance, the first table would get id 4 when 5 abbrev entries existed in the table. By itself this is not a problem but the corresponding debug_info sections were still referencing id 0. This was introduced here: https://reviews.llvm.org/D83116. Maybe a better fix is to actually correctly calculate the table id when emitting debug info? From a quick glance it seems to me the ID is just being calculated as the distance between the first DWARFAbbreviationDeclarationSet and the one the debug info entry points to, which means it's just its index and not the actual table id that was generated when emitting the debug_abbrev tables. With my fix I guess this is fine but on the diff that introduced this Pavel mentioned that he would like to have some sort of unique id between them but not necessarily +1 increasing, but for that to work we need to actually find the table ID, I guess by going directly to Y.DebugAbbrev but to honest I have no idea how to link the DWARFAbbreviationDeclarationSet and the Y.DebugAbbrev, so I just did this simple fix. I also realized there's barely any tests for MachO so it might useful to invest on that if the tool is being reworked on. Reviewed By: Higuoxing, jhenderson Differential Revision: https://reviews.llvm.org/D87179
-
Stella Laurenzo authored
Re-applies the reverted https://reviews.llvm.org/D90824 now that the link issue on BFD has been resolved. This reverts commit bb9b5d39. Differential Revision: https://reviews.llvm.org/D91044
-
Paul C. Anagnostopoulos authored
This patch includes intrinsics for AMDGPU. Differential Revision: https://reviews.llvm.org/D90946
-
Roman Lebedev authored
-
Nathan James authored
-
Hubert Tong authored
... the POSIX options suffice. This maintains compatibility with the system `diff` on platforms like AIX.
-
- Nov 08, 2020
-
-
Sanjay Patel authored
Existing pre-conditions seem to be correct: https://rise4fun.com/Alive/lCLB Name: non-zero C1 Pre: !isPowerOf2(C1) && isPowerOf2(C2) && C1 != 0 %sub = shl i8 C2, %X %cmp = icmp eq i8 %sub, C1 => %cmp = false Name: one == C2 Pre: !isPowerOf2(C1) && isPowerOf2(C2) && C2 == 1 %sub = shl i8 C2, %X %cmp = icmp eq i8 %sub, C1 => %cmp = false Name: nuw Pre: !isPowerOf2(C1) && isPowerOf2(C2) %sub = shl nuw i8 C2, %X %cmp = icmp eq i8 %sub, C1 => %cmp = false Name: nsw Pre: !isPowerOf2(C1) && isPowerOf2(C2) %sub = shl nsw i8 C2, %X %cmp = icmp eq i8 %sub, C1 => %cmp = false
-
Sanjay Patel authored
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Simon Pilgrim authored
Just use default CHECK
-
Simon Pilgrim authored
Just use default CHECK in most cases.
-
Simon Pilgrim authored
Just use default CHECK
-
Simon Pilgrim authored
We were relying on the dyn_cast<> succeeding - better use cast<> and have it assert that its the correct type than dereference a null result.
-
Simon Pilgrim authored
We were relying on the dyn_cast<> succeeding - better use cast<> and have it assert that its the correct type than dereference a null result.
-
Simon Pilgrim authored
As raised by @nlopes on D90382 - if this is not a rotate then the select was blocking poison from the 'shift-by-zero' non-TVal, but a funnel shift won't - so freeze it.
-
Simon Pilgrim authored
We can just check for a null value.
-
Florian Hahn authored
This fixes a crash when trying to get a SCEV expression for operands that are not SCEV-able.
-
Pedro Tammela authored
This patch refactors the pass to accomodate the new pass manager boilerplate. Differential Revision: https://reviews.llvm.org/D91005
-
Arthur Eubanks authored
This reverts commit ae385400. As well as some follow-up test fixes. The original change causes new-pass-manager.ll to fail when polly is enabled.
-
Craig Topper authored
Invert the select condition when masking in the sign bit of a fptoui operation. Also, rather than lowering the sign mask to select/xor and expecting the select to get cleaned up later, directly lower to shift/xor. Patch by Layton Kifer! Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D90658
-
Craig Topper authored
[RISCV] Remove assertsexti32 from a couple B extension isel patterns that don't demanded the sign extended bits.
-
Alexander Shaposhnikov authored
Move the implementation of getStringTableBuilderKind into MachOLayoutBuilder.cpp. NFC. Test plan: make check-all
-
Fangrui Song authored
The pattern should patch `a.a(a.o)` instead of `a.a`
-
Fangrui Song authored
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Stella Laurenzo authored
* Wires them in the same way that peer-dialect test passes are registered. * Fixes the build for -DLLVM_INCLUDE_TESTS=OFF. Differential Revision: https://reviews.llvm.org/D91022
-
Cornelius Aschermann authored
This diff fixes missing fields initialization (Size, VMSize). Previously this resulted in broken binaries when multiple sections were added in one tool's invocatation. Test plan: make check-all Differential revision: https://reviews.llvm.org/D90690
-
Carl Ritson authored
Fix a crash when SCC is defined until end of block and mode change must be inserted in SCC live region. Reviewed By: mceier Differential Revision: https://reviews.llvm.org/D90997
-
Mehdi Amini authored
-
Stephen Kelly authored
This was missing from commit 7efe07a1 (Traverse-ignore explicit template instantiations, 2020-11-06).
-