- Mar 06, 2021
-
-
Jez Ng authored
clang appears to emit symbols in `__debug_aranges`, at least for arm64... in the examples I've seen, it doesn't seem like those symbols are referenced outside of `__DWARF`, so I think they're safe to ignore. But hopefully @clayborg can confirm. Reviewed By: clayborg Differential Revision: https://reviews.llvm.org/D98073
-
Jez Ng authored
We'll need to properly handle object files with multiple source inputs eventually, but remove the assert for now so we can successfully emit binaries for testing. Reviewed By: #lld-macho, smeenai Differential Revision: https://reviews.llvm.org/D98067
-
Philip Reames authored
-
Aart Bik authored
With the new vector.load/store operations, there is no need to go through unmasked transfer operations (which will canonicalized to l/s anyway). Reviewed By: dcaballe Differential Revision: https://reviews.llvm.org/D98056
-
Diego Caballero authored
This patch is a follow-up on D97217. It adds a new 'Skip' result to the Operation visitor so that a callback can stop the ongoing visit of an operation/block/region and continue visiting the next one without fully interrupting the walk. Skipping is needed to be able to erase an operation/block in pre-order and do not continue visiting the internals of that operation/block. Related to the skipping mechanism, the patch also introduces the following changes: * Added new TestIRVisitors pass with basic testing for the IR visitors. * Fixed missing early increment ranges in visitor implementation. * Updated documentation of walk methods to include erasure information and walk order information. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D97820
-
Diego Caballero authored
This patch extends the Region, Block and Operation visitors to also support pre-order walks. We introduce a new template argument that dictates the walk order (only pre-order and post-order are supported for now). The default order for Regions, Blocks and Operations is post-order. Mixed orders (e.g., Region/Block pre-order + Operation post-order) could easily be implemented, as shown in NumberOfExecutions.cpp. Reviewed By: rriddle, frgossen, bondhugula Differential Revision: https://reviews.llvm.org/D97217
-
Diego Caballero authored
This avoids unnecessary casts when a BlockArgument is required. Reviewed By: bondhugula Differential Revision: https://reviews.llvm.org/D97879
-
Emily Shi authored
Currently, `print_module_map` is only respected for ubsan if it is ran in tandem with asan. This patch adds support for this flag in standalone mode. I copied the pattern used to implement this for asan. Also added a common `print_module_map` lit test for Darwin only. Since the print messages are different per platform, we need to write a regex test to cover them. This test is coming in a separate patch rdar://56135732 Reviewed By: vitalybuka, vsk, delcypher Differential Revision: https://reviews.llvm.org/D97746
-
Martin Storsjö authored
The MSVC -Wall (or /Wall) option maps (in clang-cl) to the GCC style option -Weverything, which we don't really want. Instead use -W4 which is the corresponding MSVC option. This silences the build with clang-cl, which previously used to output 100 warnings per translation unit. Differential Revision: https://reviews.llvm.org/D98035
-
Sriraman Tallam authored
The option -funique-internal-linkage-names was added in D73307 and D78243 as a LLVM early pass to insert a unique suffix to internal linkage functions and vars. The unique suffix was the hash of the module path. However, we found that this can be done more cleanly in clang early and the fixes that need to be done later can be completely avoided. The fixes in particular are trying to modify the DW_AT_linkage_name and finding the right place to insert the pass. This patch ressurects the original implementation proposed in D73307 which was reviewed and then ditched in favor of the pass based approach. Differential Revision: https://reviews.llvm.org/D96109
-
Nico Weber authored
-
KareemErgawy-TomTom authored
To unify the naming scheme across all ops in the SPIR-V dialect, we are moving from spv.camelCase to spv.CamelCase everywhere. For ops that don't have a SPIR-V spec counterpart, we use spv.mlir.snake_case. Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D98016
-
River Riddle authored
In .mlir modules with larges amounts of attributes, e.g. a function with a larger number of argument attributes, the string comparison filtering greatly affects compile time. This revision switches to using a SmallDenseSet in these situations, resulting in over a 10x speed up in some situations. Differential Revision: https://reviews.llvm.org/D97980
-
KareemErgawy-TomTom authored
To unify the naming scheme across all ops in the SPIR-V dialect, we are moving from spv.camelCase to spv.CamelCase everywhere. Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D97918
-
Tim Wojtulewicz authored
This commit removes the old way of handling Whitesmiths mode in favor of just setting the levels during parsing and letting the formatter handle it from there. It requires a bit of special-casing during the parsing, but ends up a bit cleaner than before. It also removes some of switch/case unit tests that don't really make much sense when dealing with Whitesmiths. Differential Revision: https://reviews.llvm.org/D94500
-
Björn Schäpers authored
As discussed in D95017 the names case sensitive and insensitive should be switched. This amends a8105b37. Differential Revision: https://reviews.llvm.org/D97927
-
Björn Schäpers authored
This amends 25f753c5. When applying the child configurations we don't need any diagnostic, because it was issued when first parsing them. So just drop everything on the second parse. Differential Revision: https://reviews.llvm.org/D96760
-
PremAnand Rao authored
emission Ensure that we are in a function declaration context before checking the diagnostic emission status, to avoid dereferencing a NULL function declaration. Differential Revision: https://reviews.llvm.org/D97573
-
Jay Foad authored
gfx1030 added a new way to implement readcyclecounter using the SHADER_CYCLES hardware register, but the s_memtime instruction still exists, so the MC layer should still accept it and the llvm.amdgcn.s.memtime intrinsic should still work. Differential Revision: https://reviews.llvm.org/D97928
-
Valentin Clement authored
Add diagnostic tests for Types parsers and remove duplicated diagnostics handled by the MLIR parser. Reviewed By: schweitz Differential Revision: https://reviews.llvm.org/D97643
-
Stella Laurenzo authored
* Mostly imported from experimental repo as-is with cosmetic changes. * Temporarily left out emission code (for building ops at runtime) to keep review size down. * Documentation and lit tests added fresh. * Sample op library that represents current Linalg named ops included. Differential Revision: https://reviews.llvm.org/D97995
-
Martin Storsjö authored
This silences warnings about unused functions (in an anonymous namespace). Differential Revision: https://reviews.llvm.org/D98036
-
Petr Hosek authored
The runtimes build uses variables set by add_lit_testsuite to collect testsuites from all the runtimes. Differential Revision: https://reviews.llvm.org/D97913
-
Med Ismail Bennani authored
This patch exposes the getter and setter methods for the command interpreter `print_errors` run option. rdar://74816984 Differential Revision: https://reviews.llvm.org/D98001 Signed-off-by:
Med Ismail Bennani <medismail.bennani@gmail.com>
-
Med Ismail Bennani authored
This patch introduces a new interpreter setting to prevent LLDB from re-executing the previous command when passing an empty command. This can be very useful when performing actions that requires a long time to complete. To preserve the original behaviour, the setting defaults to `true`. rdar://74983516 Differential Revision: https://reviews.llvm.org/D97999 Signed-off-by:
Med Ismail Bennani <medismail.bennani@gmail.com>
-
Vy Nguyen authored
[llvm-exegesis] Disable the LBR check on AMD https://bugs.llvm.org/show_bug.cgi?id=48918 The bug reported a hang (or very very slow runtime) on a Zen2. Unfortunately, we don't have the hardware right now to debug it and I was not able to reproduce the bug on a HSW. Theory we've got is that the lbr-checking code could be confused on AMD. Differential Revision: https://reviews.llvm.org/D97504 New change: - Surround usages of x86 helper in llvm-exegesis/X86/Target.cpp with ifdef - Fix bug which caused the caller of getVendorSignature to not have a copy of EAX that it expected. -
Stella Laurenzo authored
* Also switches to use symlinks vs copy as that enables edit-and-continue python development. * Broken out of https://reviews.llvm.org/D97995 per request from reviewer. Differential Revision: https://reviews.llvm.org/D98005
-
Philip Reames authored
The last two operands to a gc.relocate represent indices into the associated gc.statepoint's gc bundle list. (Effectively, gc.relocates are projections from the gc.statepoints multiple return values.) We can use this to recognize when two gc.relocates are equivalent (and can be CSEd), even when the indices are non-equal. This is particular useful when considering a chain of multiple statepoints as it lets us eliminate all duplicate gc.relocates in a single pass. Differential Revision: https://reviews.llvm.org/D97974 (Note: Part of the reviewed change was split and landed as f352463a)
-
Philip Reames authored
For some reason, we had been marking gc.relocates as reading memory. There's no known reason for this, and I suspect it to be a legacy of very early implementation conservatism. gc.relocate and gc.result are simply projections of the return values from the associated statepoint. Note that the LangRef has always declared them readnone. The EarlyCSE change is simply moving the special casing from readonly to readnone handling. As noted by the test diffs, this does allow some additional CSE when relocates are separated by stores, but since we generate gc.relocates in batches, this is unlikely to help anything in practice. This was reviewed as part of https://reviews.llvm.org/D97974, but split at reviewer request before landing. The motivation is to enable the GVN changes in that patch.
-
Philip Reames authored
-
Philip Reames authored
If we have a value live over a call which is used for deopt at the call, we know that the value must be a base pointer. We can avoid potentially inserting IR to materialize a base for this value. In it's current form, this is mostly a compile time optimization. Building the base pointer graph (and then optimizing it away again) is a relatively expensive operation. We also sometimes end up with better codegen in practice - due to failures in optimizing away the inserted base pointer propogation - but those are optimization bugs we're fixing concurrently. The alternative to this would be to extend the base pointer inference with the ability to generally reuse multiple-base input instructions (phis and selects). That's somewhat invasive and complicated, so we're defering it a bit longer. Differential Revision: https://reviews.llvm.org/D97885
-
Zarko Todorovski authored
This patch adds support for the default AltiVec ABI for AIX. Vector registers 20 through 31 are marked as reserved and cannot be used in the default ABI. This patch adds handling for this case and also remove the default AltiVec ABI errors. Reviewed By: sfertile Differential Revision: https://reviews.llvm.org/D96351
-
Martin Storsjö authored
If cross testing on Windows via WSL (at least with WSL 1), the Windows executables can't be executed if they are in WSL specific directories (like /tmp). Differential Revision: https://reviews.llvm.org/D98028
-
Martin Storsjö authored
Add ifdefs to the test reference tables for cases where paths are interpreted differently (paths that contain a root name). Fix test assumptions regarding has_root_name() and is_absolute() and add logic to verify the results of is_absolute() for the test cases in the table. Also add a testcase for the path "//net/", which seemed like an omission. Differential Revision: https://reviews.llvm.org/D89943
-
Andrzej Warzynski authored
Added the following attributes to all LLVM syntax files: * allocsize * cold * convergent * dereferenceable_or_null * hot * inaccessiblemem_or_argmemonly * inaccessiblememonly * inalloca * jumptable * nocallback * nocf_check * noduplicate * nofree * nomerge * noprofile * nosync * null_pointer_is_valid * optforfuzzing * preallocated * safestack * sanitize_hwaddress * sanitize_memtag * shadowcallstack * speculative_load_hardening * swifterror * syncscope * tailcc * willreturn I generated that list by comparing: * Attributes.inc (generated from Attributes.td), and * the Vim syntax file: llvm/utils/vim/syntax/llvm.vim My original intention was to focus on the Vim syntax file. Since other syntax files are also out-of-date, I added these attributes (if missing) to other files as well. Note that in the other sytnax files (i.e. for Emacs, VScode and Kate), there will be other attributes missing too. I've a...
-
Nico Weber authored
With this, llvm-tblgen no longer tries and fails to allocate 7953 petabyte when it runs during the build. Instead, `check-llvm` with lld/mac as host linker now completes without any failures on an m1 mac. This vector op handling code matches what happens in: - ld64's OutputFile::applyFixUps() in OutputFile.cpp for kindStoreARM64PageOff12 - lld.ld64.darwinold's offset12KindFromInstruction() in lld/lib/ReaderWriter/MachO/ArchHandler_arm64.cpp for offset12scale16 - RuntimeDyld's decodeAddend() in llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOAArch64.h for ARM64_RELOC_PAGEOFF12 Fixes PR49444. Differential Revision: https://reviews.llvm.org/D98053
-
LemonBoy authored
Implement the promotion rule for SELECT_CC nodes by upcasting all the parameters and downcasting the result. The AArch64 target makes use of this rule and, since it was not implemented, in some cases the instruction selector would hit an assertion upon encountering the illegal node. This patch requires D97840, the included test cases hit both problems. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D97859
-
RamNalamothu authored
This covers a path missed in https://reviews.llvm.org/D95768. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D98013
-
Nico Weber authored
With this, you can set `clang_base_path = "//out/gn1"` in `out/gn2/args.gn` and the build in out/gn2 will use clang and lld from out/gn1. Setting `clang_base_path` to an absolute path (with e.g. `clang_base_path = getenv("HOME") + "/src/..."`) should behave as before. Differential Revision: https://reviews.llvm.org/D97989 -
Nico Weber authored
-