- Feb 28, 2020
-
-
Simon Pilgrim authored
This shouldn't be relevant now that we just support VS2017+.
-
Jay Foad authored
-
Jay Foad authored
-
Jay Foad authored
-
Alexey Lapshin authored
Removed unused function getSectionByName() from dsymutil/DwarfStreamer.cpp.
-
Nathan James authored
Summary: Motivated by [[ https://bugs.llvm.org/show_bug.cgi?id=45045 | Tune inspections to a specific C++ standard. ]] Moves the isLanguageVersionSupported virtual function from `MakeSmartPtrCheck` to the base `ClangTidyCheck` class. This will disable registering matchers or pp callbacks on unsupported language versions for a check. Having it as a standalone function is cleaner than manually disabling the check in the register function and should hopefully encourage check developers to actually restrict the check based on language version. As an added bonus this could enable automatic detection of what language version a check runs on for the purpose of documentation generation Reviewers: aaron.ballman, gribozavr2, Eugene.Zelenko, JonasToth, alexfh, hokein Reviewed By: gribozavr2 Subscribers: xazax.hun, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D75289
-
Jonathan Coe authored
Reviewers: MyDeveloperDay, krasimir Reviewed By: krasimir Subscribers: cfe-commits Tags: #clang-format, #clang Differential Revision: https://reviews.llvm.org/D75336
-
Simon Cook authored
When running under LTO, it is common to not specify the architecture spec, which is used for setting up the target machine, and instead rely on features specified in each function to generate the correct instructions. This works for the code generator, but the RISC-V backend uses the AsmPrinter to do instruction compression, which does not see these features but instead uses a MCSubtargetInfo object to see whether compression is enabled. Since this is configured based on the TargetMachine at startup, it will result in compressed instructions not being emitted when it has not been given the 'c' TargetFeature, but the function has it. This changes the RISCVAsmPrinter to re-initialize the STI feature set based on the current MachineFunction, such that compressed instructions are now correctly emitted regardless of the method used to enable them. Differential revision: https://reviews.llvm.org/D73339
-
LLVM GN Syncbot authored
-
Peter Smith authored
Fix buildbots that don't build ARM backend.
-
Jeremy Morse authored
Way back in D24994, the combination of LexicalScopes::dominates and LiveDebugValues was identified as having worst-case quadratic complexity, but it wasn't triggered by any code path at the time. I've since run into a scenario where this occurs, in a very large basic block where large numbers of inlined DBG_VALUEs are present. The quadratic-ness comes from LiveDebugValues::join calling "dominates" on every variable location, and LexicalScopes::dominates potentially touching every instruction in a block to test for the presence of a scope. We have, however, already computed the presence of scopes in blocks, in the "InstrRanges" of each scope. This patch switches the dominates method to examine whether a block is present in a scope's InsnRanges, avoiding walking through the whole block. At the same time, fix getMachineBasicBlocks to account for the fact that InsnRanges can cover multiple blocks, and add some unit tests, as Lexical Scopes didn't have any. Differential revision: https://reviews.llvm.org/D73725
-
Juneyoung Lee authored
Summary: This patch makes EarlyCSE fold equivalent freeze instructions. Another optimization that I think will be useful is to remove freeze if its operand is used as a branch condition or at llvm.assume: ``` %c = ... br i1 %c, label %A, .. A: %d = freeze %c ; %d can be optimized to %c because %c cannot be poison or undef (or 'br %c' would be UB otherwise) ``` If it make sense for EarlyCSE to support this as well, I will make a patch for this. Reviewers: spatel, reames, lebedev.ri Reviewed By: lebedev.ri Subscribers: lebedev.ri, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D75334
-
Peter Smith authored
MC will now output the R_ARM_THM_PC8, R_ARM_THM_PC12 and R_ARM_THM_PREL_11_0 relocations. These are short-ranged relocations that are used to implement the adr rd, literal and ldr rd, literal pseudo instructions. The instructions use a new RelExpr called R_ARM_PCA in order to calculate the required S + A - Pa expression, where Pa is AlignDown(P, 4) as the instructions add their immediate to AlignDown(PC, 4). We also do not want these relocations to generate or resolve against a PLT entry as the range of these relocations is so short they would never reach. The R_ARM_THM_PC8 has a special encoding convention for the relocation addend, the immediate field is unsigned, yet the addend must be -4 to account for the Thumb PC bias. The ABI (not the architecture) uses the convention that the 8-byte immediate of 0xff represents -4. Differential Revision: https://reviews.llvm.org/D75042
-
Peter Smith authored
Add ELF relocations for the following fixups: fixup_thumb_adr_pcrel_10 -> R_ARM_THM_PC8 fixup_thumb_cp -> R_ARM_THM_PC8 fixup_t2_adr_pcrel_12 -> R_ARM_THM_PREL_11_0 fixup_t2_ldst_pcrel_12 -> R_ARM_THM_PC12 While these relocations are short-ranged there is support in the open source ELF linker's in binutils and soon to be in LLD. MC will no longer resolve pc-relative fixups to global symbols due to interpositioning concerns. We can handle these at link time by implementing the relocations. The R_ARM_THM_PC8 has some extra encoding rules for addends that llvm-mc sidesteps by not supporting addends for these instructions, using the wide Thumb 2 instruction if it is available. I think that this is a reasonable compromise given that these are rare. This partiall reverts D72892, the Thumb fixups no longer need to be evaluated at assembly time. Differential Revision: https://reviews.llvm.org/D75039
-
Sam Parker authored
-
Jay Foad authored
Summary: The point of this is to make some tests with manual checks robust against scheduler tweaks, so that only autogenerated test updates will be required when pushing D68338 "[AMDGPU] Remove dubious logic in bidirectional list scheduler". Reviewers: arsenm, rampitec, vpykhtin Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D75302
-
Sam Parker authored
Ensure that we're recording implicit defs, as well as visiting implicit uses and implicit defs when we're walking through operands. Differential Revision: https://reviews.llvm.org/D75185
-
Jonathan Coe authored
Summary: Do not confuse C# nullable types with conditional expressions. Do not put a space before the `?` in `[access-modifier] Type? variableName;` Reviewers: krasimir, MyDeveloperDay Reviewed By: krasimir, MyDeveloperDay Subscribers: cfe-commits, MyDeveloperDay Tags: #clang-format, #clang Differential Revision: https://reviews.llvm.org/D75261
-
Stefan Agner authored
Support the explicit wide assembler qualifier for the dmb/dsb/isb synchronization barrier instructions. Differential revision: https://reviews.llvm.org/D75143
-
Stefan Agner authored
Accept explicit wide assembler qualifier for the pld/pldw/pli. Differential revision: https://reviews.llvm.org/D75144
-
Djordje Todorovic authored
-
Kirill Bobyrev authored
s/ArrayRef/llvm::ArrayRef/g since it's outside llvm namespace. Related revision: 9227a74b
-
Alexey Lapshin authored
Summary: DWARFContext has all the required information to access source debug info. It is not necessary to use "const object::ObjectFile" to create DWARFContext. Thus this patch removes all usages of "const object::ObjectFile" from DWARFLinker. Instead, already created DWARFContext is passed to DWARFLinker. The purpose is to not depend on "const object::ObjectFile". The patch looks big, but most of changes are renamings and movements. Testing: it passes "check-all" lit testing. MD5 checksum for clang .dSYM bundle matches for the dsymutil with/without that patch. Reviewers: JDevlieghere, friss, dblaikie, aprantl Reviewed By: JDevlieghere Subscribers: hiraditya, llvm-commits Tags: #llvm, #debug-info Differential Revision: https://reviews.llvm.org/D75029
-
Pierre-vh authored
Differential Revision: https://reviews.llvm.org/D75235
-
Pavel Labath authored
x86_64 ABIs were converted with 07355c1c. This does the same with i386.
-
Hans Wennborg authored
SROA will drop the explicit alignment on allocas when the ABI guarantees enough alignment. Because the alignment on new load/store instructions are set based on the alloca's alignment, that means SROA would end up dropping the alignment from atomic loads and stores, which is not allowed (see bug). For those, make sure to always carry over the alignment from the previous instruction. Differential revision: https://reviews.llvm.org/D75266
-
serge-sans-paille authored
According to Joseph Myers, a libm maintainer > They were only ever an ABI (selected by use of -ffinite-math-only or > options implying it, which resulted in the headers using "asm" to redirect > calls to some libm functions), not an API. The change means that ABI has > turned into compat symbols (only available for existing binaries, not for > anything newly linked, not included in static libm at all, not included in > shared libm for future glibc ports such as RV32), so, yes, in any case > where tools generate direct calls to those functions (rather than just > following the "asm" annotations on function declarations in the headers), > they need to stop doing so. As a consequence, we should no longer assume these symbols are available on the target system. Still keep the TargetLibraryInfo for constant folding. Differential Revision: https://reviews.llvm.org/D74712
-
Hans Wennborg authored
llvm-ar is using CompareStringOrdinal which is available only starting with Windows Vista (WINVER 0x600). Fix this by hoising WindowsSupport.h, which sets _WIN32_WINNT to 0x0601, up to llvm/include/llvm/Support and use it in llvm-ar. Patch by Cristian Adam! Differential revision: https://reviews.llvm.org/D74599
-
Balázs Kéri authored
Summary: It is not enough to clone the attributes at import. They can contain reference to objects that should be imported. This work is done now for AlignedAttr. Reviewers: martong, a.sidorin, shafik Reviewed By: shafik Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, teemperor, martong, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D75048
-
Kadir Cetinkaya authored
Reviewers: hokein Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D75230
-
Kadir Cetinkaya authored
Reviewers: hokein, sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D75249
-
Igor Kudrin authored
The integrity check code allowed only DWARF32 units. Differential Revision: https://reviews.llvm.org/D75178
-
Igor Kudrin authored
The integrity checks for index entries in DWARFUnitHeader::extract() might cause the function to return before checking the state of an Error object, which leads to a crash in runtime. The patch fixes the issue by moving the checks in a safe place. Differential Revision: https://reviews.llvm.org/D75177
-
Pavel Labath authored
Summary: Include the offset at which this happened. Reviewers: dblaikie, jhenderson Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D75265
-
Saleem Abdulrasool authored
Process the path for libxml2 before embedding that into the command line that is generated in `llvm-config`. Each element in the path is being given a `-l` unconditionally which should not be the case for absolute paths. Since the library path may be absolute or not, just apply some CMake pre-processing when generating the path. Before: ``` /usr/lib/x86_64-linux-gnu/libz.so -lrt -ldl -ltinfo -lpthread -lm /usr/lib/x86_64-linux-gnu/libxml2.so ``` After: ``` /usr/lib/x86_64-linux-gnu/libz.so -lrt -ldl -ltinfo -lpthread -lm -lxml2 ``` Resolves PR44179!
-
Craig Topper authored
This test case shows extra moves due to not fully considering all commuting opportunities.
-
Jun Ma authored
Fix regression of CoreElide pass when current function is coroutine. Differential Revision: https://reviews.llvm.org/D71663
-
Juneyoung Lee authored
.. due to performance regression. This patch is reverted until infrastructore for CSE/LICM support for freeze is added. This reverts commit 181628b5
-
Matthias Kramm authored
Summary: This is a cosmetic change to make the "bingo" comment be in the right place. Differential Revision: https://reviews.llvm.org/D75264
-
Matthias Kramm authored
Summary: * add missing comma. * remove "having to register them here" phrasing, since register it is what we're doing, which made the comment a bit confusing. * remove duplicate code. * clarify link to chapter 3, since "folder" doesn't appear in that chapter. Differential Revision: https://reviews.llvm.org/D75263
-