- Oct 27, 2021
-
-
Lang Hames authored
-
Jake Egan authored
The modified tests were failing on AIX because DWARF on AIX uses inline strings by default, but the tests check for `DW_FORM_strp`. This patch removes `DW_FORM_strp` so both forms will pass the check. Reviewed By: shchenz, dblaikie Differential Revision: https://reviews.llvm.org/D112286
-
Max Kazantsev authored
Make sure that, for every living SCEV, we have all its direct operand tracking it as their user. Differential Revision: https://reviews.llvm.org/D112402 Reviewed By: reames
-
Ben Shi authored
Simplify "LUI+SLLI+ADDI+SLLI" and "LUI+ADDIW+SLLI+ADDI+SLLI" to "LUI+ADDIW+SLLIUW" to reduce total instruction amount. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D111933
-
Ben Shi authored
Reviewed By: craig.topper, MaskRay Differential Revision: https://reviews.llvm.org/D111932
-
River Riddle authored
The current implementation invokes materializations whenever an input operand does not have a mapping for the desired type, i.e. it requires materialization at the earliest possible point. This conflicts with goal of dialect conversion (and also the current documentation) which states that a materialization is only required if the materialization is supposed to persist after the conversion process has finished. This revision refactors this such that whenever a target materialization "might" be necessary, we insert an unrealized_conversion_cast to act as a temporary materialization. This allows for deferring the invocation of the user materialization hooks until the end of the conversion process, where we actually have a better sense if it's actually necessary. This has several benefits: * In some cases a target materialization hook is no longer necessary When performing a full conversion, there are some situations where a temporary materialization is necessary. Moving forward, these users won't need to provide any target materializations, as the temporary materializations do not require the user to provide materialization hooks. * getRemappedValue can now handle values that haven't been converted yet Before this commit, it wasn't well supported to get the remapped value of a value that hadn't been converted yet (making it difficult/impossible to convert multiple operations in many situations). This commit updates getRemappedValue to properly handle this case by inserting temporary materializations when necessary. Another code-health related benefit is that with this change we can move a majority of the complexity related to materializations to the end of the conversion process, instead of handling adhoc while conversion is happening. Differential Revision: https://reviews.llvm.org/D111620
-
River Riddle authored
This file has gotten a bit crusty over the years, and has outdated stylistic decisions.
-
Ben Shi authored
Reviewed By: tra Differential Revision: https://reviews.llvm.org/D112521
-
Nico Weber authored
-
Daniel Rodríguez Troitiño authored
GNU sed offers the `,+4d` to delete the line a next four lines, but BSD sed doesn't seem to support it (at least in macOS 10.15, but seems to do in my 11.6 version). Replace the usage of the extension with the equivalent syntax that works both in BSD and GNU sed. I don't have a macOS 10.15 to check, but this works in both my macOS 11.6 and Linux machines. Differential Revision: https://reviews.llvm.org/D112583
-
Jacques Pienaar authored
Also flip op-decl-and-defs test to _Prefixed to test more.
-
Brad Smith authored
-
Luís Ferreira authored
Implement the functionallity of prepend, required by D demangler. Please read discussion https://reviews.llvm.org/D111414 for context. See also https://reviews.llvm.org/D111947 . Reviewed By: dblaikie, Geod24 Differential Revision: https://reviews.llvm.org/D111948
-
David Blaikie authored
-
LLVM GN Syncbot authored
-
Jacques Pienaar authored
The previous change resulted in prefixing a query that uses the raw attribute as if function invocation. Fixing quickly, with updated test to follow.
-
Jez Ng authored
Broken by a9353dbe. Now that the functions point to the compact unwind entries, instead of the other way around, we need to perform the "invalid reference" check in a different place. This change was originally part of the stacked diff D109946, but should have been included as part of D109945.
-
David Blaikie authored
-
Nico Weber authored
This reverts commit e2a2e547. 6fe2beba relanded (again) in c24a5808.
-
Rob Suderman authored
Dyn-cast should be checked and bailed out if the dyn_cast failed. Reviewed By: sjarus, NatashaKnk Differential Revision: https://reviews.llvm.org/D112574
-
Austin Kerbow authored
The scheduler should set critical/excess register usage thresholds that are guided by the maximum possible occupancy for the function. This change is focused on setting proper lower bounds on register usage which we would typically only see when a specific number of maximum waves is requested with the "waves-per-eu" attribute, or by setting "amdgpu-num-vgpr|sgpr" directly. This was broken previously. I have a follow-on patch that will address issues with the scheduler not targeting correct upper bounds on register usage which is typical with launch bounds and min "waves-per-eu". Changes by this patch: Set the initial critical register usage thresholds to minimum values that are determined by the maximum possible occupancy for the function, or the number of allocatable registers, whichever is lower. Avoid unisgned overflow if register limits are lower than the register tracking "ErrorMargin", I.e. when using stress-regalloc=2. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D112373
-
Yuanfang Chen authored
Otherwise, ODRUniquing would map some member method/variable MDNodes to have enum type DIScope, resulting in invalid debug info and bad DWARF. - Add a Verifier check that when a 'scope:' operand is an ODR type that is not an enum. - Makes ODRUniquing apply to only ODR types with the same tag so that the debuginfo/DWARF is well-formed. Reviewed By: probinson, aprantl Differential Revision: https://reviews.llvm.org/D111770
-
Greg Clayton authored
The new key/value pairs that are added to each module's stats are: "debugInfoByteSize": The size in bytes of debug info for each module. "debugInfoIndexTime": The time in seconds that it took to index the debug info. "debugInfoParseTime": The time in seconds that debug info had to be parsed. At the top level we add up all of the debug info size, parse time and index time with the following keys: "totalDebugInfoByteSize": The size in bytes of all debug info in all modules. "totalDebugInfoIndexTime": The time in seconds that it took to index all debug info if it was indexed for all modules. "totalDebugInfoParseTime": The time in seconds that debug info was parsed for all modules. Differential Revision: https://reviews.llvm.org/D112501
-
Nuri Amari authored
**Context:** This is a second attempt at introducing signature regeneration to llvm-objcopy. In this diff: https://reviews.llvm.org/D109840, a script was introduced to test the validity of a code signature. In this diff: https://reviews.llvm.org/D109803 (now reverted), an effort was made to extract the signature generation behavior out of LLD into a common location for use in llvm-objcopy. In this diff: https://reviews.llvm.org/D109972 it was decided that there was no appropriate common location and that a small amount of duplication to bring signature generation to llvm-objcopy would be better. This diff introduces this duplication. **Summary** Prior to this change, if a LC_CODE_SIGNATURE load command was included in the binary passed to llvm-objcopy, the command and associated section were simply copied and included verbatim in the new binary. If rest of the binary was modified at all, this results in an invalid Mach-O file. This change rege...
-
Danil Stefaniuc authored
This diff adds a data formatter for libstdcpp's bitset. Besides, it unifies the tests for bitset for libcxx and libstdcpp for maintainability. Reviewed By: wallace Differential Revision: https://reviews.llvm.org/D112180
-
Sanjay Patel authored
The motivating test is based on: https://llvm.org/PR52260 We have better analysis for X == 0, so try harder to form that.
-
Sanjay Patel authored
-
Aart Bik authored
Rationale: The currently used trait was demanding that all types are the same which is not true (since the sparse part may change and the dim sizes may be relaxed). This revision uses the correct trait and makes the rank match test explicit in the verify method. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D112576
-
William Muir authored
Links the backtrace library which is required under FreeBSD when building llvm/lib/Support. This library is similarly linked by CMake on BSD builds at [llvm/lib/Support/CMakeLists.txt](https://github.com/llvm/llvm-project/blob/e158b5634aa67ea3039a62c3d8bda79b77b3b21c/llvm/lib/Support/CMakeLists.txt#L39-L46) Reviewed By: GMNGeoffrey Differential Revision: https://reviews.llvm.org/D110533
-
Alexey Bataev authored
-
Aart Bik authored
This refactoring adds a few "event" functions (start/end loop-seq/loop) for readability of the core function of codegen. This also prepares sparse tensor output codegen, where these "event" functions will provide convenient placeholders to start or stop insertion bookkeeping. This revision also includes a few various minor changes that kept on pending in my local workspace. Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D112506
-
Jon Chesterfield authored
Essentially moves the foreach over sm integers into a macro and instantiates it for nvptx. NFC in that the macro is not presently instantiated for amdgpu as the corresponding code doesn't compile yet. Reviewed By: Meinersbur Differential Revision: https://reviews.llvm.org/D111987
-
Jez Ng authored
This diff does away with `addEntriesForFunctionsWithoutUnwindInfo()`, because `addSymbol()` can now determine which functions need those entries. While overhauling UnwindInfoSection, I also parallelized the relocation of the contents of the CUEs. This somewhat offsets the time regression from creating one InputSection per CUE (which was done in D109944). Reviewed By: #lld-macho, oontvoo Differential Revision: https://reviews.llvm.org/D109945
-
Jez Ng authored
Compact unwind entries (CUEs) contain pointers to their respective function symbols. However, during the link process, it's far more useful to have pointers from the function symbol to the CUE than vice versa. This diff adds that pointer in the form of `Defined::compactUnwind`. In particular, when doing dead-stripping, we want to mark CUEs live when their function symbol is live; and when doing ICF, we want to dedup sections iff the symbols in that section have identical CUEs. In both cases, we want to be able to locate the symbols within a given section, as well as locate the CUEs belonging to those symbols. So this diff also adds `InputSection::symbols`. The ultimate goal of this refactor is to have ICF support dedup'ing functions with unwind info, but that will be handled in subsequent diffs. This diff focuses on simplifying `-dead_strip` -- `findFunctionsWithUnwindInfo` is no longer necessary, and `Defined::isLive()` is now a lot simpler. Moreover, UnwindInfoSection no longer has to check for dead CUEs -- we simply avoid adding them in the first place. Additionally, we now support stripping of dead LSDAs, which follows quite naturally since `markLive()` can now reach them via the CUEs. Reviewed By: #lld-macho, gkm Differential Revision: https://reviews.llvm.org/D109944
-
Stanislav Mekhanoshin authored
-
Valentin Clement authored
Substring information on slice operation has been added in D112441. The operations fir.array_load, fir.array_coor and fir.array_merge_store can take a slice but not with a substring. This patch add this check in their verifier. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: schweitz Differential Revision: https://reviews.llvm.org/D112568
-
Alexander Belyaev authored
-
Vassil Vassilev authored
Original commit message: " Original commit message: " Original commit message: " Original commit message:" The current infrastructure in lib/Interpreter has a tool, clang-repl, very similar to clang-interpreter which also allows incremental compilation. This patch moves clang-interpreter as a test case and drops it as conditionally built example as we already have clang-repl in place. " This patch also ignores ppc due to missing weak symbol for __gxx_personality_v0 which may be a feature request for the jit infrastructure. Also, adds a missing build system dependency to the orc jit. " Additionally, this patch defines a custom exception type and thus avoids the requirement to include header <exception>, making it easier to deploy across systems without standard location of the c++ headers. " This patch also works around PR49692 and finds a way to use llvm::consumeError in rtti mode. " This patch also checks if stl is built with rtti. Differential revision: https://reviews.llvm.org/D107049 -
Florian Hahn authored
Replace some custom matrix diagnostic kinds with the more generic err_builtin_invalid_arg_type introduced in D111985. Reviewed By: aaron.ballman, erichkeane Differential Revision: https://reviews.llvm.org/D112532
-
Alexander Belyaev authored
-