summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
* [ARM] Fix 8-bit immediate overflow in the instruction of segmented stack ↵HEADmainZhiyao Ma2022-03-10-54/+258
| | | | | | | | | | | | | prologue. It fixes the overflow of 8-bit immediate field in the emitted instruction that allocates large stacklet. For thumb2 targets, load large immediate by a pair of movw and movt instruction. For thumb1 and ARM targets, load large immediate by reading from literal pool. Differential Revision: https://reviews.llvm.org/D118545
* [AArch64] Use correct calling convention for each varargPhilippe Valembois2022-03-10-76/+113
| | | | | | | | | | | | While checking is tail call optimization is possible, the calling convention applied to fixed arguments is not the correct one. This implies for DarwinPCS that all arguments of a vararg function will go to the stack although fixed ones can go in registers. This prevents non-virtual thunks to be tail optimized although they are marked as musttail. Differential Revision: https://reviews.llvm.org/D120622
* [clang-format] Fix namespace format when the name is followed by a macroZequan Wu2022-03-10-35/+134
| | | | | | | | | | | | | | | | | | | | | | | | | | Example: ``` $ cat a.cpp namespace my_namespace::yeah API_AVAILABLE(macos(10.15)) { void test() {} } $ clang-format a.cpp namespace my_namespace::yeah API_AVAILABLE(macos(10.15)) { void test() {} }// namespace my_namespace::yeahAPI_AVAILABLE(macos(10.15)) ``` After: ``` $ clang-format a.cpp namespace my_namespace::yeah API_AVAILABLE(macos(10.15)) { void test() {} }// namespace my_namespace::yeah ``` Reviewed By: MyDeveloperDay, owenpan, curdeius Differential Revision: https://reviews.llvm.org/D121269
* [clang-tools-extra] Don't consider python below LLVM_MINIMUM_PYTHON_VERSION. NFCSam McCall2022-03-10-10/+2
|
* [lldb] Remove unused include in ScriptedProcessInterface.hDave Lee2022-03-10-1/+0
|
* [Sema][Windows] Don't special-case void* in __unaligned conversions.Eli Friedman2022-03-10-10/+30
| | | | | | | | | | | | | | As far as I can tell, MSVC allows the relevant conversions for all pointer types. Found compiling a Windows SDK header. I've verified that the updated errors in MicrosoftExtensions.cpp match the ones that MSVC actually emits, except for the one with a FIXME. (Not sure why this wasn't done for the patch that added the tests.) To make up for the missing error, add a warning that triggers on conversions that drop the __unaligned qualfier. Differential Revision: https://reviews.llvm.org/D120936
* [mlir][Vector] Modernize default lowering of vector transposeDiego Caballero2022-03-10-68/+63
| | | | | | | | | | This patch removes an old recursive implementation to lower vector.transpose to extract/insert operations and replaces it with a iterative approach that leverages newer linearization/delinearization utilities. The patch should be NFC except by the order in which the extract/insert ops are generated. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D121321
* [FunctionAttrs] Add tests for argmemonly inference.Florian Hahn2022-03-10-0/+192
|
* [clang-format][NFC] Group all C++ passes under isCpp()owenca2022-03-10-10/+9
| | | | Also removes a not very helpful comment.
* [clang-tools-extra] Remove unused lit features/substitutions. NFCISam McCall2022-03-10-25/+0
|
* Fix reference to execute_external leftover in 69924ccf7a328fSam McCall2022-03-10-1/+1
|
* Remove redundant lit config already handled in llvm_config. NFCISam McCall2022-03-10-28/+3
| | | | | | | This logic duplicates lit.llvm.initialize, which we're already calling (in lit.site.cfg.py.in). The equivalent logic was removed from clang in d4401d354a938dd366bf but never cleaned up here.
* [lldb] Call ThreadPlan::DiscardPlan from Thread::DiscardPlanDave Lee2022-03-10-1/+1
| | | | | | Correct `Thread::DiscardPlan` to call `DiscardPlan` instead of `PopPlan`. Differential Revision: https://reviews.llvm.org/D96655
* llvm-ifs doc: Replace a utf-8 char by a more classic oneSylvestre Ledru2022-03-10-1/+1
| | | | | Fails on old python (like on ubuntu bionic) otherwise with: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 2130: ordinal not in range(128)
* [ASan] Added back @PLT to __asan_report_* calls to avoid compile errors.Kirill Stoimenov2022-03-10-4/+4
| | | | | | Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D121409
* lldb/ObjectFile,Disassembler: read some state from the executableSaleem Abdulrasool2022-03-10-0/+51
| | | | | | | | | | | | | | | | | | | | | | | | Add support to inspect the ELF headers for RISCV targets to determine if RVC or RVE are enabled and the floating point support to enable. As per the RISCV specification, d implies f, q implies d implies f, which gives us the cascading effect that is used to enable the features when setting up the disassembler. With this change, it is now possible to attach the debugger to a remote process and be able to disassemble the instruction stream. ~~~ $ bin/lldb tmp/reduced (lldb) target create "reduced" Current executable set to '/tmp/reduced' (riscv64). (lldb) gdb-remote localhost:1234 (lldb) Process 5737 stopped * thread #1, name = 'reduced', stop reason = signal SIGTRAP frame #0: 0x0000003ff7fe1b20 -> 0x3ff7fe1b20: mv a0, sp 0x3ff7fe1b22: jal 1936 0x3ff7fe1b26: mv s0, a0 0x3ff7fe1b28: auipc a0, 27 ~~~
* [libc][Obvious] Destroy the block store var in block store test.Siva Chandra Reddy2022-03-10-0/+2
|
* [clang-format] Handle "// clang-format off" for RemoveBracesLLVMowenca2022-03-10-1/+15
| | | | Differential Revision: https://reviews.llvm.org/D121352
* [libc] Add a resizable container with constexpr constructor and destructor.Siva Chandra Reddy2022-03-10-13/+257
| | | | | | | | | | The new container is used to store atexit callbacks. This way, we avoid the possibility of the destructor of the container itself getting added as an at exit callback. Reviewed By: abrachet Differential Revision: https://reviews.llvm.org/D121350
* Diagnose when `#pragma clang fp eval_method` doesn't have a supported value.Zahira Ammarguellat2022-03-10-1/+12
| | | | | | Currently the compiler is crashing. Differential Revision: https://reviews.llvm.org/D121380
* [ASan] Moved optimized callbacks out of asan_static to avoid DSO size increase.Kirill Stoimenov2022-03-10-11/+5
| | | | | | Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D121405
* [FunctionAttrs] Add initial test for pass statistics.Florian Hahn2022-03-10-0/+27
|
* [X86] Add (u)comiss/sd tests showing eflags handling (PR38960)Simon Pilgrim2022-03-10-0/+637
|
* [libc++] Add tests for the content of <cstddef>Louis Dionne2022-03-10-0/+72
| | | | | | As discussed in D114786. Differential Revision: https://reviews.llvm.org/D121110
* [libc++] Remove operator-> from iterator archetypes that don't need itLouis Dionne2022-03-10-59/+63
| | | | | | | | operator-> is not a requirement for most iterators, so remove it. To account for this change, the `common_iterator.operator->` test needs to be refactored quite a bit -- improve test coverage while we're at it. Differential Revision: https://reviews.llvm.org/D118400
* [lldb] Always listen for progress events in the default event handlerJonas Devlieghere2022-03-10-4/+2
| | | | | | | | We came to the conclusion that this doesn't matter for VSCode/Xcode because they don't use the default event loop and that other clients who might care should use the setting. Differential revision: https://reviews.llvm.org/D120972
* [LLDB][NativePDB] Add support for S_DEFRANGE_REGISTER and ↵Zequan Wu2022-03-10-20/+731
| | | | | | S_DEFRANGE_SUBFIELD_REGISTER Differential Revision: https://reviews.llvm.org/D119508
* [mlir][NVVM] Add ldmatrix op to NVVM dialectThomas Raoux2022-03-10-0/+148
| | | | Differential Revision: https://reviews.llvm.org/D121347
* [AMDGPU] Updated some tests to run on gfx940. NFC.Stanislav Mekhanoshin2022-03-10-9/+18
|
* [cmake] Remove unused OUTPUT_MAPPING param to configure_lit_site_cfg(). NFCSam McCall2022-03-10-6/+1
| | | | | Looks like it never did anything. Added in 71deeee593c40ff01e529a6a4b30fa5b55494b82
* [lld-macho] Align cstrings less conservativelyJez Ng2022-03-10-38/+229
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, we aligned every cstring to 16 bytes as a temporary hack to deal with https://github.com/llvm/llvm-project/issues/50135. However, it was highly wasteful in terms of binary size. To recap, in contrast to ELF, which puts strings that need different alignments into different sections, `clang`'s Mach-O backend puts them all in one section. Strings that need to be aligned have the .p2align directive emitted before them, which simply translates into zero padding in the object file. In other words, we have to infer the alignment of the cstrings from their addresses. We differ slightly from ld64 in how we've chosen to align these cstrings. Both LLD and ld64 preserve the number of trailing zeros in each cstring's address in the input object files. When deduplicating identical cstrings, both linkers pick the cstring whose address has more trailing zeros, and preserve the alignment of that address in the final binary. However, ld64 goes a step further and also preserves the offset of the cstring from the last section-aligned address. I.e. if a cstring is at offset 18 in the input, with a section alignment of 16, then both LLD and ld64 will ensure the final address is 2-byte aligned (since `18 == 16 + 2`). But ld64 will also ensure that the final address is of the form 16 * k + 2 for some k (which implies 2-byte alignment). Note that ld64's heuristic means that a dedup'ed cstring's final address is dependent on the order of the input object files. E.g. if in addition to the cstring at offset 18 above, we have a duplicate one in another file with a `.cstring` section alignment of 2 and an offset of zero, then ld64 will pick the cstring from the object file earlier on the command line (since both have the same number of trailing zeros in their address). So the final cstring may either be at some address `16 * k + 2` or at some address `2 * k`. I've opted not to follow this behavior primarily for implementation simplicity, and secondarily to save a few more bytes. It's not clear to me that preserving the section alignment + offset is ever necessary, and there are many cases that are clearly redundant. In particular, if an x86_64 object file contains some strings that are accessed via SIMD instructions, then the .cstring section in the object file will be 16-byte-aligned (since SIMD requires its operand addresses to be 16-byte aligned). However, there will typically also be other cstrings in the same file that aren't used via SIMD and don't need this alignment. They will be emitted at some arbitrary address `A`, but ld64 will treat them as being 16-byte aligned with an offset of `16 % A`. I have verified that the two repros in https://github.com/llvm/llvm-project/issues/50135 work well with the new alignment behavior. Fixes https://github.com/llvm/llvm-project/issues/54036. Reviewed By: #lld-macho, oontvoo Differential Revision: https://reviews.llvm.org/D121342
* [BOLT] Divide RegularPageSize for X86 and AArch64 casesElvina Yakubova2022-03-10-1/+4
| | | | | | | | For AArch64 in some cases/some distributions ld uses 64K alignment of LOAD segments by default. Reviewed By: yota9, maksfb Differential Revision: https://reviews.llvm.org/D119267
* [lldb] Remove extra space in step logging messageDave Lee2022-03-10-1/+1
| | | | | When seeing the extra space in the log, it wasn't clear if there was a missing printf argument. Removing the extra space removes the potential confusion.
* [mlir][sparse] Improving error messages for openSparseTensorCOOwren romano2022-03-10-1/+6
| | | | | | Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D121333
* [RISCV] Remove performANY_EXTENDCombine.Craig Topper2022-03-10-87/+0
| | | | | | | | | | This doesn't appear to be needed any more. I did some inspecting of the gcc torture suite and SPEC2006 with this removed and didn't find any meaningful changes. I think we're more aggressive about forming ADDIW now using sign_extend_inreg during type legalization and hasAllWUsers in isel. This probably helps catch the cases this helped with before.
* [lldb/gdb-remote] Remove ancient debugserver workaroundPavel Labath2022-03-10-107/+1
| | | | | | | | | | | This workaround is the source of an awkwared Process->Platform dependency. While this could be solved in various ways (the only thing we really use is the plugin name), it may be better to just remove it -- the workaround was added 10 years ago (43c555dfc), and the affected debugservers were "old" even then, so hopefully they are not in use anymore. Differential Revision: https://reviews.llvm.org/D121305
* [flang] Lower pointer component in derived typeValentin Clement2022-03-10-17/+1258
| | | | | | | | | | | | | | | | | This patch lowers pointer component part of derived types to FIR. This patch is part of the upstreaming effort from fir-dev branch. Depends on D121383 Reviewed By: PeteSteinfeld, schweitz Differential Revision: https://reviews.llvm.org/D121384 Co-authored-by: V Donaldson <vdonaldson@nvidia.com> Co-authored-by: Jean Perier <jperier@nvidia.com> Co-authored-by: Eric Schweitz <eschweitz@nvidia.com>
* [lldb/crashlog] Reformat module loading logs (NFC)Med Ismail Bennani2022-03-10-2/+2
| | | | Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
* [lldb/Plugin] Test that a scripted process blueprint can be loaded for the dSYMMed Ismail Bennani2022-03-10-10/+20
| | | | | | | | | | | This patch ensures that lldb can automatically load a scripted process blueprint from a dSYM bundle and launch a scripted process with it. rdar://74502750 Differential Revision: https://reviews.llvm.org/D121316 Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
* [lldb/crashlog] Make interactive mode display more user-friendlyMed Ismail Bennani2022-03-10-5/+39
| | | | | | | | | | | This patch makes the crashlog interactive mode show the scripted process status with the crashed scripted thread backtrace after launching it. rdar://89634338 Differential Revision: https://reviews.llvm.org/D121038 Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
* [JMCInstrument] infer proper path style based on debug infoYuanfang Chen2022-03-10-61/+113
| | | | | | | | | | | | By default, the path style is decided by the host. This patch makes JMC uses the path style used by the SP directory. This makes JMC output host-independent. Fixes: https://github.com/llvm/llvm-project/issues/54219 Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D121236
* [flang] Lower general forall statementValentin Clement2022-03-10-25/+1929
| | | | | | | | | | | | | | | | | This patch lowers general forall statements. The forall are lowered to nested loops. This patch is part of the upstreaming effort from fir-dev branch. Depends on D121385 Reviewed By: PeteSteinfeld, schweitz Differential Revision: https://reviews.llvm.org/D121386 Co-authored-by: V Donaldson <vdonaldson@nvidia.com> Co-authored-by: Jean Perier <jperier@nvidia.com> Co-authored-by: Eric Schweitz <eschweitz@nvidia.com>
* [CMake] Include runtimes test suites in check-allPetr Hosek2022-03-10-4/+27
| | | | | | | | | | | | | | | | | Prior to this change, we would make check-all depend on check-runtimes which is a target that runs tests in the runtimes build. This means that the runtimes tests are going to run prior to other test suites in check-all, and if one of them fails, we won't run the other test suites at all. To address this issue, we instead collect the list of test suites and their dependencies from the runtimes subbuild, and include them in check-all, so a failure of runtimes test suite doesn't prevent other test suites from being executed. This addresses https://github.com/llvm/llvm-project/issues/54154. Differential Revision: https://reviews.llvm.org/D121276
* [AMDGPU] Use subreg encoding instead of reassignJoe Nash2022-03-10-5/+5
| | | | | | | | | | The HWEncoding for these 64 bit registers should be the same as as the encoding for the previously defined low halves of the registers. So reuse that value instead of repeating the assignment. NFC. Reviewed By: foad Differential Revision: https://reviews.llvm.org/D121391
* Fix the dates for the C and C++ language working groupAaron Ballman2022-03-10-1/+1
| | | | It's 1st and 3rd Wed of the month instead of every other.
* [RISCV] Add isel patterns for masked RISCVISD::FMA_VL with RISCVISD::FNEG_VL.Craig Topper2022-03-10-10/+6410
| | | | | | | | | | | | | | This helps us form vfnmsub, vfnmadd, and vfmusb from masked VP intrinsics. I've used "srcvalue" for the mask parameter in the fneg nodes. We can't match "V0" because that doesn't ensure the mask the is the same. Instead it matches two different nodes and generates two copies to V0 of those separate values. Reviewed By: rogfer01 Differential Revision: https://reviews.llvm.org/D120287
* [InstCombine] replace negated operand in fcmp with 0.0Sanjay Patel2022-03-10-56/+52
| | | | | | | | | | | X (any pred) -X --> X (any pred) 0.0 This works with all FP values and preserves FMF. Alive2 examples: https://alive2.llvm.org/ce/z/dj6jhp This can also create one of the patterns that we match as "fabs" as shown in one of the test diffs.
* [InstCombine] add tests for fcmp with fneg common operand; NFCSanjay Patel2022-03-10-0/+357
|
* [VP] Strided loads/storesLorenzo Albano2022-03-10-18/+687
| | | | | | | | | This patch introduces two new experimental IR intrinsics and SDAG nodes to represent vector strided loads and stores. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D114884
* [flang] Lower where statementValentin Clement2022-03-10-36/+761
| | | | | | | | | | | | | | | This patch lowers where statement to FIR. The where statement is lowered to a conbination of loops and if conditions. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D121385 Co-authored-by: Jean Perier <jperier@nvidia.com> Co-authored-by: Eric Schweitz <eschweitz@nvidia.com>