- Nov 13, 2020
-
-
shafik authored
When parsing DWARF and laying out bit-fields we don't properly take into account when they are in a union, they will all have a zero offset. Differential Revision: https://reviews.llvm.org/D91118
-
Sanjay Patel authored
-
Sanjay Patel authored
-
Amy Huang authored
This was motivated by changes to llvm's `not --crash` disabling symbolization but I ended up removing `not` from the script entirely because it returns differently depending on whether clang "crashes" or exits for some other reason. The script had to choose between calling `not` and `not --crash` and sometimes it was wrong. The script also now disables symbolization when we don't read the stack trace because symbolizing is kind of slow. Differential Revision: https://reviews.llvm.org/D91372
-
Stanislav Mekhanoshin authored
Differential Revision: https://reviews.llvm.org/D91384
-
Stella Laurenzo authored
Differential Revision: https://reviews.llvm.org/D91282
-
Florian Hahn authored
This patch adds a new matcher for single index InsertValue instructions, similar to the existing matcher for ExtractValue. Reviewed By: lebedev.ri Differential Revision: https://reviews.llvm.org/D91352
-
Alexey Bataev authored
Need to check if the sema is actually finishing a function decl. Differential Revision: https://reviews.llvm.org/D91376
-
Kazushi (Jam) Marukawa authored
VE needs to support integrated assembler and "nas". This "nas" doesn't recognize ".sigaddr" pseudo mnemonics, so need to disable it. This patch disable it on VE by default. Also add a regression test for that. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D91350
-
peter klausler authored
An io-unit that is an internal-file-variable is syntactically identical to a file-unit-number expression that is a variable reference. An ambiguous unit is initially parsed as an internal-file-variable. If semantic analysis determines that the unit is not of character type, it is rewritten as an internal-file-variable. This modification must retain source coordinate information. Differential revision: https://reviews.llvm.org/D91375
-
Joe Pletcher authored
Adds a new option, `handle_winexcept` to try to intercept uncaught Visual C++ exceptions on Windows. On Linux, such exceptions are handled implicitly by `std::terminate()` raising `SIBABRT`. This option brings the Windows behavior in line with Linux. Unfortunately this exception code is intentionally undocumented, however has remained stable for the last decade. More information can be found here: https://devblogs.microsoft.com/oldnewthing/20100730-00/?p=13273 Reviewed By: morehouse, metzman Differential Revision: https://reviews.llvm.org/D89755
-
peter klausler authored
The ENDFILE statement may be spelled as two words. Differential revision: https://reviews.llvm.org/D91377
-
Arthur Eubanks authored
This removes lots of duplicated code which was necessary before https://reviews.llvm.org/D89158. Now we can use PassBuilder::runRegisteredEPCallbacks(). This is mostly sanitizers. There is likely more that can be done to simplify, but let's start with this. Reviewed By: ychen Differential Revision: https://reviews.llvm.org/D90870
-
Alexey Bataev authored
Need to check if there are map types for the components before trying to access them when trying to modify type mappings for combined partial mappings. Differential Revision: https://reviews.llvm.org/D91370
-
Jay Foad authored
Also fix a similar issue in SIInsertWaitcnts, but I don't think that fix has any effect in practice. Differential Revision: https://reviews.llvm.org/D91290
-
Jay Foad authored
Differential Revision: https://reviews.llvm.org/D91289
-
Jianzhou Zhao authored
Reviewed-by: eugenis Differential Revision: https://reviews.llvm.org/D91320
-
Zbigniew Sarbinowski authored
The unavailability of posix_memalign on z/OS forces us to define _LIBCPP_HAS_NO_LIBRARY_ALIGNED_ALLOCATION'. The use of posix_memalign is being used in libcxx/src/new.cpp. Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D90178
-
Nikita Popov authored
The GEP aliasing code currently checks for the GEP decomposition limit being reached (i.e., we did not reach the "final" underlying object). As far as I can see, these checks are not necessary. It is perfectly fine to work with a GEP whose base can still be further decomposed. Looking back through the commit history, these checks were originally introduced in 1a444489. However, I believe that the problem this was intended to address was later properly fixed with 1726fc69, and the checks are no longer necessary since then (and were not the right fix in the first place). Differential Revision: https://reviews.llvm.org/D91010
-
Anatoliy Tomilov authored
to synchronize with tools/clang-format/git-clang-format tra: Keeping them in sync does have a minor benefit of not raising a question why the two maps are different. Differential Revision: https://reviews.llvm.org/D91034
-
peter klausler authored
-
Louis Dionne authored
The `posix_memalign@GLIBC_2.2.5` symbol can't have been added by r284206, because it doesn't show up in the corresponding ABI list. It's also not defined in libc++, so that wouldn't make sense. It must have made it into that comment by mistake.
-
Rahul Joshi authored
- Remove the default valued arguments from these functions. - Besides FuncOp, looks like no other in-tree op is using these functions. Differential Revision: https://reviews.llvm.org/D91369
-
Nico Weber authored
This reverts commit 37a1336d. 173b5116 was reverted in 777ca48c.
-
Louis Dionne authored
This commit adds new explicit instantiations for some classes in <iostream> in the library. This is done after noticing that many programs that use streams end up containing weak definitions of these classes, which has a negative impact on both code size and load times (due to the need to resolve weak symbols at load time). Note that we are just adding the additional explicit instantiations for the `char` specializations, since the `wchar_t` specializations are not used as often, and as a result there wouldn't be a clear benefit. This change is not an ABI break, since we are just adding additional symbols. Differential Revision: https://reviews.llvm.org/D90677
-
Louis Dionne authored
This reverts commit 173b5116. That commit was applied incorrectly, and undid previous changes. That was clearly not intended.
-
Craig Topper authored
Follow up from a similar patch on RISCV 637f19c3 Nothing reads this Glue value that I could see. The SDNode def in the td file does not have the SDNPOutGlue flag so I don't think this glue would get properly propagated to MachineSDNodes if it was used.
-
peter klausler authored
Add error reporting infrastructure and support for ALLOCATE and DEALLOCATE statements of intrinsic types without SOURCE= or MOLD=. Differential revision: https://reviews.llvm.org/D91215
-
Nathan James authored
Changed `ClangTidyOptions::mergeWith` to operate on the instance instead of returning a copy. The old mergeWith method has been renamed to merge and marked as nodiscard, to aid in disambiguating which one is which. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D91184
-
Aaron Ballman authored
There are two factory functions used to create a semantic attribute, Create() and CreateImplicit(). CreateImplicit() does not need to specify the source range of the attribute since it's an implicitly- generated attribute. The same logic does not apply to Create(), so this removes the default argument from those declarations to avoid accidentally creating a semantic attribute without source location information.
-
Fangrui Song authored
Fixes PR48071 * The Rust compiler produces SHF_ALLOC `.debug_gdb_scripts` (which normally does not have the flag) * `.debug_gdb_scripts` sections are removed from `inputSections` due to --strip-debug/--strip-all * When processing --gc-sections, pieces of a SHF_MERGE section can be marked live separately `=>` segfault when marking liveness of a `.debug_gdb_scripts` which is not split into pieces (because it is not in `inputSections`) This patch circumvents the problem by not treating SHF_ALLOC ".debug*" as debug sections (to prevent --strip-debug's stripping) (which is still useful on its own). Reviewed By: grimar Differential Revision: https://reviews.llvm.org/D91291
-
Kevin P. Neal authored
As of D80952 we are disabling strict floating point on all hosts except those that are explicitly listed as supported. Use of strict floating point on other hosts requires use of the -fexperimental-strict-floating-point flag. This is to avoid bugs like "https://bugs.llvm.org/show_bug.cgi?id=45329" (which has an incorrect link in the previous review). In the review for D80952 I was asked to mark the -fexperimental option as a MarshallingInfoFlag. This patch does exactly that. Differential Revision: https://reviews.llvm.org/D88987
-
Sanjay Patel authored
-
Jamie Schmeiser authored
Reland: Introduce -dot-cfg-mssa option which creates dot-cfg style file with mssa comments included in source Summary: Expand the print-memoryssa and print<memoryssa> passes with a new hidden option -cfg-dot-mssa that names a file. When set, a dot-cfg style file will be generated into the named file with the memoryssa comments retained and those blocks containing them shown in light pink. The option does nothing in isolation. Author: Jamie Schmeiser <schmeise@ca.ibm.com> Reviewed By: asbirlea (Alina Sbirlea), dblaikie (David Blaikie) Differential Revision: https://reviews.llvm.org/D90638
-
Nico Weber authored
-
Alexander Kornienko authored
-
Simon Pilgrim authored
[ValueTracking] Update computeKnownBitsFromShiftOperator callbacks to take KnownBits shift amount. NFCI. We were creating this internally, but will need to support general KnownBits amounts as part of D90479.
-
Fangrui Song authored
Input sections `.ctors/.ctors.N` may go to either the output section `.init_array` or the output section `.ctors`: * output `.ctors`: currently we sort them by name. This patch changes to sort by priority from high to low. If N in `.ctors.N` is in the form of %05u, there is no semantic difference. Actually GCC and Clang do use %05u. (In the test `ctors_dtors_priority.s` and Gold's test `gold/testsuite/script_test_14.s`, we can see %03u, but they are not really produced by compilers.) * output `.init_array`: users can provide an input section description `SORT_BY_INIT_PRIORITY(.init_array.* .ctors.*)` to mix `.init_array.*` and `.ctors.*`. This can make .init_array.N and .ctors.(65535-N) interchangeable. With this change, users can mix `.ctors.N` and `.init_array.N` in `.init_array` (PR44698 and PR48096) with linker scripts. As an example: ``` SECTIONS { .init_array : { *(SORT_BY_INIT_PRIORITY(.init_array.* .ctors.*)) *(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors) } } INSERT AFTER .fini_array; SECTIONS { .fini_array : { *(SORT_BY_INIT_PRIORITY(.fini_array.* .dtors.*)) *(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors) } } INSERT BEFORE .init_array; ``` Reviewed By: psmith Differential Revision: https://reviews.llvm.org/D91187 -
Fangrui Song authored
According to https://sourceware.org/binutils/docs/ld/Input-Section-Basics.html#Input-Section-Basics for `*(.a .b)`, the order should match the input order: * for `ld 1.o 2.o`, sections from 1.o precede sections from 2.o * within a file, `.a` and `.b` appear in the section header table order This patch implements the behavior. The interaction with `SORT*` and --sort-section is: Matched sections are ordered by radix sort with the keys being `(SORT*, --sort-section, input order)`, where `SORT*` (if present) is most significant. > Note, multiple `SORT*` within an input section description has undocumented and > confusing behaviors in GNU ld: > https://sourceware.org/pipermail/binutils/2020-November/114083.html > Therefore multiple `SORT*` is not the focus for this patch but > this patch still strives to have an explainable behavior. As an example, we partition `SORT(a.*) b.* c.* SORT(d.*)`, into `SORT(a.*) | b.* c.* | SORT(d.*)` and perform sorting within groups. Sections matched by patterns between two `SORT*` are sorted by input order. If --sort-alignment is given, they are sorted by --sort-alignment, breaking tie by input order. This patch also allows a section to be matched by multiple patterns, previously duplicated sections could occupy more space in the output and had erroneous zero bytes. The patch is in preparation for support for `*(SORT_BY_INIT_PRIORITY(.init_array.* .ctors.*)) *(.init_array .ctors)`, which will allow LLD to mix .ctors*/.init_array* like GNU ld (gold's --ctors-in-init-array) PR44698 and PR48096 Reviewed By: grimar, psmith Differential Revision: https://reviews.llvm.org/D91127
-
Fangrui Song authored
The second `SORT` in `*(SORT(...) SORT(...))` is incorrectly parsed as a file pattern. Fix the bug by stopping at `SORT*` in `readInputSectionsList`. Reviewed By: grimar Differential Revision: https://reviews.llvm.org/D91180
-