- Jun 16, 2020
-
-
Georgii Rymar authored
Currently, llvm-readelf crashes when there is a STT_SECTION symbol for the null section and this symbol is used in a relocation. Differential revision: https://reviews.llvm.org/D81840
-
Ayke van Laethem authored
An instruction like this will need to allocate some stack space for the last parameter: %x = call addrspace(1) i16 @bar(i64 undef, i64 undef, i16 undef, i16 0) This worked fine when passing an actual value (in this case 0). However, when passing undef, no value was pushed to the stack and therefore no push instructions were created. This caused an unbalanced stack leading to interesting results. This commit fixes that by replacing the push logic with a regular stack adjustment and stack-relative load/stores. This is less efficient but at least it correctly compiles the code. I can think of a few improvements in the future: * The stack should have been adjusted in the function prologue when there are no allocas in the function. * Many (if not most) stack adjustments can be replaced by pushing/popping the values directly. Exactly like the previous code attempted but didn't do correctly. * Small stack adjustments can be done more efficiently with a few push/pop instructions (pushing/popping bogus values), both for code size and for speed. All in all, as long as there are no allocas in the function I think that it is almost always more efficient to emit regular push/pop instructions. This is however left for future optimizations. Differential Revision: https://reviews.llvm.org/D78581
-
Ayke van Laethem authored
This patch fixes a bug in stack save/restore code. Because the frame pointer was saved/restored manually (not by marking it as clobbered) the StackSize variable was not updated accordingly. Most code still worked, but code that tried to load a parameter passed on the stack did not. This commit fixes this by marking the frame pointer as a callee-clobbered register. This will let it be saved without any effort in prolog/epilog code and will make sure the correct address is calculated for loading parameters that are passed on the stack. This approach is used by most other targets (such as X86, AArch64 and RISC-V). Differential Revision: https://reviews.llvm.org/D78579
-
Alexander Belyaev authored
-
Ilya Leoshkevich authored
Summary: Add runtime support, adjust the tests and enable LSan. Reviewers: vitalybuka, eugenis, uweigand, jonpa Reviewed By: uweigand Subscribers: mgorny, cfe-commits, #sanitizers Tags: #clang, #sanitizers Differential Revision: https://reviews.llvm.org/D78644
-
David Green authored
These code patterns attempt to call isVMOVModifiedImm on a splat of i1 values, leading to an unreachable being hit. I've guarded the call on a more specific set of sizes, as i1 vectors are legal under MVE. Differential Revision: https://reviews.llvm.org/D81860
-
sstefan1 authored
We are starting to use the Attributor outside the Attributor itself and we need these to be able to seed and querry AAs.
-
Simon Pilgrim authored
-
Tyker authored
Summary: this reduces significantly the number of assumes generated without aftecting too much the information that is preserved. this improves the compile-time cost of enable-knowledge-retention significantly. Reviewers: jdoerfert, sstefan1 Reviewed By: jdoerfert Subscribers: hiraditya, asbirlea, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79650
-
njames93 authored
Fix a crash in clangd caused by an (admittidly incorrect) Remark diagnositic being emitted from readability-else-after-return. This crash doesn't occur in clang-tidy so there are no tests there for this. Reviewed By: hokein Differential Revision: https://reviews.llvm.org/D81785
-
Kristof Beyls authored
GCC 7 was reporting "enumeral and non-enumeral type in conditional expression" as a warning. The code casts an instruction opcode enum to unsigned implicitly, in line with intentions; so this commit silences the warning by making the cast to unsigned explicit.
-
sstefan1 authored
-
Alexandros Lamprineas authored
We are planning to add the bf16 value type in the HPR register class and this will make the codegen patterns ambiguous. Differential Revision: https://reviews.llvm.org/D81505
-
Valeriy Savchenko authored
Differential Revision: https://reviews.llvm.org/D81569
-
Valeriy Savchenko authored
Differential Revision: https://reviews.llvm.org/D81568
-
Valeriy Savchenko authored
Differential Revision: https://reviews.llvm.org/D81567
-
Valeriy Savchenko authored
Summary: It makes it much harder to use from other modules when one of the parameters is an argparse Namespace. This commit makes it easier to use CmpRuns programmatically. Differential Revision: https://reviews.llvm.org/D81566
-
Valeriy Savchenko authored
Differential Revision: https://reviews.llvm.org/D81565
-
Valeriy Savchenko authored
Differential Revision: https://reviews.llvm.org/D81564
-
Valeriy Savchenko authored
Summary: JSON format is a bit more verbose and easier to reason about and extend. For this reason, before extending SATestBuild functionality it is better to refactor the part of how we configure the whole system. Differential Revision: https://reviews.llvm.org/D81563
-
Valeriy Savchenko authored
Differential Revision: https://reviews.llvm.org/D81642
-
Valeriy Savchenko authored
Differential Revision: https://reviews.llvm.org/D80517
-
LLVM GN Syncbot authored
-
Haojian Wu authored
Summary: The field decl (in the testcase) was still valid, which results in a valid RecordDecl, it led to crash when performing struct layout, and computing struct size etc. Reviewers: sammccall Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D81913
-
Dineshkumar Bhaskaran authored
Summary: Fix in getDescAsStringRef to not use a reference to a temporary type and added a testcase. Reviewers: arsenm, saiislam, scott.linder Reviewed By: scott.linder Subscribers: wdng, mgorny, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D81653
-
Jay Foad authored
This reverts commit 69bdfb07. Reverting to investigate https://bugs.llvm.org/show_bug.cgi?id=46343
-
sstefan1 authored
Summary: Couple of tests to showcase what will be done and what to expect with ICV tracking. Reviewers: jdoerfert, JonChesterfield Subscribers: yaxunl, guansong, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D81114
-
Vitaly Buka authored
Summary: Before unwinding the stack, `__asan_handle_no_return` is supposed to unpoison the entire stack - that is, remove the entries in the shadow memory corresponding to stack (e.g. redzone markers around variables). This does not work correctly if `__asan_handle_no_return` is called from the alternate stack used in signal handlers, because the stack top is read from a cache, which yields the default stack top instead of the signal alternate stack top. It is also possible to jump between the default stack and the signal alternate stack. Therefore, __asan_handle_no_return needs to unpoison both. Reviewers: vitalybuka, kubamracek, kcc, eugenis Reviewed By: vitalybuka Subscribers: phosek, #sanitizers Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D76986
-
Andi-Bogdan Postelnicu authored
Some paths can have special chars like `file++c.cpp` in this case the regex will fail if we don't escape it.
-
Simon Pilgrim authored
If PTEST is not available, then we're guaranteed to be performing a 128-bit vector comparison using MOVMSK(PCMPEQB(v16i8)).
-
Kadir Cetinkaya authored
-
Kirill Bobyrev authored
This reverts commit 8c6c49f2. As discussed offline, this patch breaks internal builds and tests so I'm reverting it for now.
-
Hans Wennborg authored
-
Robert Schneider authored
Summary: This adds a customization point to support unpoisoning of signal alternate stacks on POSIX. Reviewers: vitalybuka Reviewed By: vitalybuka Subscribers: #sanitizers Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D81577
-
Igor Kudrin authored
Note that .eh_frame sections are generated in the 32-bit format even when debug sections are 64-bit, for compatibility reasons. They use relative references between entries, so they hardly benefit from the 64-bit format. Differential Revision: https://reviews.llvm.org/D81149
-
Igor Kudrin authored
DW_FORM_sec_offset was introduced in DWARFv4, so, for 64-bit DWARFv3, DW_FORM_data8 should be used instead. Differential Revision: https://reviews.llvm.org/D81148
-
Igor Kudrin authored
In addition, the patch fixes referencing the section within a compilation unit. Differential Revision: https://reviews.llvm.org/D81147
-
Igor Kudrin authored
Differential Revision: https://reviews.llvm.org/D81146
-
Igor Kudrin authored
The patch enables producing DWARF64 compilation units and fixes generating references to .debug_abbrev and .debug_line sections. A similar change for .debug_ranges/.debug_rnglists will be added in a forthcoming patch. Differential Revision: https://reviews.llvm.org/D81145