- May 05, 2020
-
-
Denys Petrov authored
-
Sean Fertile authored
-
David Green authored
-
Alexandre Ganea authored
Before this patch, global variables didn't have their namespace prepended in the Codeview debug symbol stream. This prevented Visual Studio from displaying them in the debugger (they appeared as 'unspecified error') Differential Revision: https://reviews.llvm.org/D79028
-
Louis Dionne authored
When building with modules, always enable local submodule visibility. It used to be disabled on Apple platforms, but it seems like we want to use the same flags on Apple and Linux now (see https://reviews.llvm.org/D74892).
-
Med Ismail Bennani authored
This patch fixes the test failure happening on Windows introduced by `01511741 `. Since the failure message comes from the OS, the test needs to support both UNIX and Windows messages. Signed-off-by:
Med Ismail Bennani <medismail.bennani@gmail.com>
-
Zarko authored
-
Zola Bridges authored
Summary: Moving these function initializations into separate functions makes it easier to read the runOnModule function. There is also precedent in the sanitizer code: asan has a function ModuleAddressSanitizer::initializeCallbacks(Module &M). I thought it made sense to break the initializations into two sets. One for the compiler runtime functions and one for the event callbacks. Tested with: check-all Reviewed By: morehouse Differential Revision: https://reviews.llvm.org/D79307
-
Louis Dionne authored
The double-braces were initially to escape Python string formatting, but that string isn't sent through Python string formatting.
-
Yaxun (Sam) Liu authored
We need a way to know supported targets by clang since people may use clang as assembler and they want to choose the clang which supports their target. This patch let clang print registered targets when --version option is passed to clang. Differential Revision: https://reviews.llvm.org/D79210
-
Louis Dionne authored
-
- May 04, 2020
-
-
Stanislav Mekhanoshin authored
This a hack to fix illegal 32 to 16 bit copies. The problem is when we make 16 bit subregs legal it creates a huge amount of failures which can only be resolved at once without a temporary hack like this. The next step is to change operands, instruction definitions and patterns until this hack is not needed. Differential Revision: https://reviews.llvm.org/D79119
-
Stephen Neuendorffer authored
In MLIR, it is common for automatically generated headers to be included in many places. To avoid tracking these dependencies explicitly in cmake, they are treated as part of a library which 'owns' the generated header. Users of the generated header link against the owning library. However, object libraries don't actually 'link', so this dependence gets lost. This patch adds an explicit dependence for these generated headers when creating object library targets to ensure that generated headers are appropriately generated Differential Revision: https://reviews.llvm.org/D79241
-
Louis Dionne authored
-
Christopher Tetreault authored
Summary: Remove invalid usage of VectorType::getNumElements in ShuffleVectorInst::isValidOperands identified by test case llvm::Analysis/ConstantFolding/vscale-shufflevector.ll. The tested conditions hold for both fixed width and scalable vectors; use getElementCount(). Reviewers: efriedma, sdesmalen, c-rhodes, spatel Reviewed By: sdesmalen Subscribers: tschuett, hiraditya, rkruppe, psnobl, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79212
-
Med Ismail Bennani authored
When trying to read a core file that is not owned by the user running lldb and that doesn't have read permission on the file, lldb shows a misleading error message: ``` Unable to find process plug-in for core file ``` This is due to the fact that currently, lldb doesn't check the file ownership. And when trying to to open and read a core file, the syscall fails, which prevents a process to be created. Since lldb already have a portable `open` syscall interface, lets take advantage of that and delegate the error handling to the syscall itself. This way, no matter if the file exists or if the user has proper ownership, lldb will always try to open the file, and behave accordingly to the error code returned. rdar://42630030 https://reviews.llvm.org/D78712 Signed-off-by:
Med Ismail Bennani <medismail.bennani@gmail.com>
-
Nicolas Vasilache authored
Linalg transformations are currently exposed as DRRs. Unfortunately RewriterGen does not play well with the line of work on named linalg ops which require variadic operands and results. Additionally, DRR is arguably not the right abstraction to expose compositions of such patterns that don't rely on SSA use-def semantics. This revision abandons DRRs and exposes manually written C++ patterns. Refactorings and cleanups are performed to uniformize APIs. This refactoring will allow replacing the currently manually specified Linalg named ops. A collateral victim of this refactoring is the `tileAndFuse` DRR, and the one associated test, which will be revived at a later time. Lastly, the following 2 tests do not add value and are altered: - a dot_perm tile + interchange test does not test anything new and is removed - a dot tile + lower to loops does not need 2-D tiling and is trimmed.
-
Fangrui Song authored
removeEmptyPTLoad() removes empty (p_memsz=0) PT_LOAD segments. In assignFileOffsets(), setFileOffset() unnecessarily advances file offsets for containing empty sections. This is exposed by arm Linux kernel's multi_v5_defconfig (see https://bugs.llvm.org/show_bug.cgi?id=45632) ``` ld.lld (max-page-size=65536): [34] .init.data PROGBITS c0c24000 c34000 0128ac 00 WA 0 0 4096 [35] .text_itcm PROGBITS fffe0000 c50000 000000 00 WA 0 0 1 [36] .data_dtcm PROGBITS fffe8000 c58000 000000 00 WA 0 0 1 [37] .data PROGBITS c0c38000 c58000 0647a0 00 WA 0 0 32 arm-linux-gnueabi-ld (max-page-size=65536): [23] .init.data PROGBITS c0c12000 c22000 0128ac 00 WA 0 0 4096 [24] .text_itcm PROGBITS fffe0000 ca2558 000000 00 W 0 0 1 [25] .data_dtcm PROGBITS fffe8000 ca2558 000000 00 W 0 ...
-
Louis Dionne authored
-
Pete Steinfeld authored
Summary: I found a small test case that caused a crash when derived type definitions have parameters without definitions. Reviewers: tskeith, klausler, DavidTruby Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79282
-
Melanie Blower authored
-
Simon Pilgrim authored
This patch adds support for discarding integer absolutes (abs + nabs variants) from self-multiplications. ABS Alive2: http://volta.cs.utah.edu:8080/z/rwcc8W NABS Alive2: http://volta.cs.utah.edu:8080/z/jZXUwQ This is an InstCombine version of D79304 - I'm not sure yet if we'll need that after this. Reviewed By: @lebedev.ri and @xbolva00 Differential Revision: https://reviews.llvm.org/D79319
-
Simon Pilgrim authored
Minor cleanup of combineShuffle by moving some of the low hanging fruit (load + scalar_to_vector folds).
-
Louis Dionne authored
This makes it easier to diff them between bot runs.
-
Frederik Gossen authored
Add `CreateComplexOp`, `ReOp`, and `ImOp` to the standard dialect. This is the first step to support complex numbers. Differential Revision: https://reviews.llvm.org/D79159
-
Reid Kleckner authored
Heap profiling with ETW shows that LLD performs 4,053,721 heap allocations over its lifetime, and ~800,000 of them come from assocEquals. These vectors are created just to do a comparison, so fuse the comparison into the loop and avoid the allocation. ICF is overall a small portion of the time spent linking, and I did not measure overall throughput improvements from this change above the noise threshold. However, these show up in the heap profiler, and the work is done, so we might as well land it if the code is clear enough. Reviewed By: hans Differential Revision: https://reviews.llvm.org/D79297
-
Alex Richardson authored
We allocated a suitably aligned frame index so we know that all the values have ABI alignment. For MIPS this avoids using pair of lwl + lwr instructions instead of a single lw. I found this when compiling CHERI pure capability code where we can't use the lwl/lwr unaligned loads/stores and and were to falling back to a byte load + shift + or sequence. This should save a few instructions for MIPS and possibly other backends that don't have fast unaligned loads/stores. It also improves code generation for CodeGen/X86/pr34653.ll and CodeGen/WebAssembly/offset.ll since they can now use aligned loads. Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D78999
-
Alex Richardson authored
SelectionDAGBuilder currently doesn't propagate the known alignment of the sret parameter. This is inefficient for MIPS and highly inefficient for our out-of-tree CHERI-extended MIPS since we don't have lwl/lwr so fall back to byte loads for align == 1.
-
alex-t authored
Summary: This change enables all kind of carry out ISD opcodes to be selected according to the node divergence. Reviewers: rampitec, arsenm, vpykhtin Reviewed By: rampitec Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78091
-
Pavel Labath authored
The dumping code is not used by anyone, and is a source of inconsistencies with the llvm dwarf parser, as dumping is implemented at a different level (DWARFDie) there.
-
Peter Smith authored
Sections with the SHF_LINK_ORDER flag must be ordered in the same relative order as the Sections they have a link to. When using a linker script an arbitrary expression may be used for the virtual address of the OutputSection. In some cases the virtual address does not monotonically increase as the OutputSection index increases, so if we base the ordering of the SHF_LINK_ORDER sections on the index then we can get the order wrong. We fix this by moving SHF_LINK_ORDER resolution till after we have created OutputSection virtual addresses. Differential Revision: https://reviews.llvm.org/D79286
-
Louis Dionne authored
This commit migrates some of the Lit features from config.py to the new DSL. This simplifies config.py and is a first step towards defining all the features using the DSL instead of the complex logic in config.py. Differential Revision: https://reviews.llvm.org/D78382
-
Raul Tambre authored
Summary: NVIDIA's Carmel ARM64 cores are used in Tegra194 chips found in Jetson AGX Xavier, DRIVE AGX Xavier and DRIVE AGX Pegasus. References: * https://devblogs.nvidia.com/nvidia-jetson-agx-xavier-32-teraops-ai-robotics/#h.huq9xtg75a5e * NVIDIA Xavier Series System-on-Chip Technical Reference Manual 1.3 (https://developer.nvidia.com/embedded/downloads#?search=Xavier%20Series%20SoC%20Technical%20Reference%20Manual) Reviewers: sdesmalen, paquette Reviewed By: sdesmalen Subscribers: llvm-commits, ianshmean, kristof.beyls, hiraditya, jfb, danielkiss, cfe-commits, t.p.northover Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D77940
-
Melanie Blower authored
Add support for #pragma float_control Reviewers: rjmccall, erichkeane, sepavloff Differential Revision: https://reviews.llvm.org/D72841 This reverts commit fce82c0e.
-
Marcel Koester authored
The current BufferPlacement implementation tries to find Alloc and Dealloc operations in order to move them. However, this is a tight coupling to standard-dialect ops which has been removed in this CL. Differential Revision: https://reviews.llvm.org/D78993
-
Kerry McLaughlin authored
Summary: This patch adds AArch64ISD nodes for [S|U]MIN_PRED and [S|U]MAX_PRED, and lowers both SVE intrinsics and IR operations for min and max to these nodes. There are two forms of these instructions for SVE: a predicated form and an immediate (unpredicated) form. The patterns which existed for the latter have been updated to match a predicated node with an immediate and map this to the immediate instruction. Reviewers: sdesmalen, efriedma, dancgr, rengolin Reviewed By: efriedma Subscribers: huihuiz, tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, cfe-commits, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79087
-
Jay Foad authored
optimizePow does not create any new calls to pow, so it should work regardless of whether the pow library function is available. This allows it to optimize the llvm.pow intrinsic on targets with no math library. Based on a patch by Tim Renouf. Differential Revision: https://reviews.llvm.org/D68231
-
Simon Pilgrim authored
Includes abs() and nabs() variants
-
Florian Hahn authored
There's no need to duplicate the logic to push to the different work-lists.
-
Hans Wennborg authored
It was failing with: /work/llvm.monorepo/clang-tools-extra/clangd/ClangdServer.cpp: In lambda function: /work/llvm.monorepo/clang-tools-extra/clangd/ClangdServer.cpp:374:75: error: could not convert ‘(const char*)""’ from ‘const char*’ to ‘llvm::StringLiteral’ trace::Metric::Distribution); ^
-