- May 10, 2024
-
-
Amir Ayupov authored
Created using spr 1.3.4
-
Amir Ayupov authored
Created using spr 1.3.4 [skip ci]
-
- May 09, 2024
-
-
Zixu Wang authored
`Count` and `Skip` should use `uint64_t` as they are encoded/decoded using 64-bit ULEB128. In `*_OPCODE_DO_*_ULEB_TIMES_SKIPPING_ULEB`, `Skip` could be encoded as a two's complement for moving `SegmentOffset` backwards. Having a 32-bit `Skip` truncates the encoded value and leads to a malformed `AdvanceAmount` and invalid `SegmentOffset` that extends past valid sections.
-
Felix (Ting Wang) authored
Under some circumstance (library loaded with the main program), TLS initial-exec model can be applied to local-dynamic access(es). We could use some simple heuristic to decide the update at function level: * If there is equal or less than a number of TLS local-dynamic access(es) in the function, use TLS initial-exec model. (the threshold which default to 1 is controlled by hidden option)
-
Artem Dergachev authored
Fixes #90498. Same as 5337efc6 for atomic builtins, but for `std::atomic` this time. This is useful because even though the actual builtin atomic is still there, it may be buried beyond the inlining depth limit. Also add one popular custom smart pointer class name to the name-based heuristics, which isn't necessary to fix the bug but arguably a good idea regardless.
-
Maksim Panchenko authored
A compiler can generate a redundant indirection for a jump via a fixed jump table target. Add a test case that covers such pattern that covers PIC case. We already have non-PIC case detection. Currently XFAIL.
-
Krystian Stasiowski authored
Fixes a crash caused by #90152.
-
AtariDreams authored
Fixed test for #88193
-
AtariDreams authored
It is inaccurate and needs to be corrected.
-
Craig Topper authored
[RISCV] Don't use std::vector<std::string> for split extensions in RISCVISAInfo::parseArchString. NFC (#91538) We can use a SmallVector<StringRef>. Adjust the code so we check for empty strings in the loop instead of making a copy of the vector returned from StringRef::split. This overlaps with #91532 which also removed the std::vector, but that PR may be more controversial.
-
Mircea Trofin authored
This adds the instrumentation lowering pass. (Tracking Issue: #89287, RFC referenced there)
-
Slava Zakharin authored
The lowering produces fir.dummy_scope operation if the current function has dummy arguments. Each hlfir.declare generated for a dummy argument is then using the result of fir.dummy_scope as its dummy_scope operand. This is only done for HLFIR. I was not able to find a reliable way to identify dummy symbols in `genDeclareSymbol`, so I added a set of registered dummy symbols that is alive during the variables instantiation for the current function. The set is initialized during the mapping of the dummy argument symbols to their MLIR values. It is reset right after all variables are instantiated - this is done to avoid generating hlfir.declare operations with dummy_scope for the clones of the dummy symbols (e.g. this happens with OpenMP privatization). If this can be done in a cleaner way, please advise.
-
Craig Topper authored
This can be LI+BCLRI+BCLRI.
-
Craig Topper authored
-
Arthur Eubanks authored
This reverts commit 2475efa9. Causes crashes, see comments on https://github.com/llvm/llvm-project/commit/2475efa91d8b4fa8f1a2d16052cb6d14be7d5dc6.
-
Augusto Noronha authored
-
Mingming Liu authored
A related change is https://reviews.llvm.org/D133121, which correctly preserves both branch weights and value profiles for invoke instruction. * If the branch weight of the `invokeinst` specifies taken / not-taken branches, there is no scale.
-
Kazu Hirata authored
-
Dave Lee authored
Adds a `show_function_display_name` parameter to `SymbolContext::DumpStopContext`. This parameter defaults to false, but `BreakpointLocation::GetDescription` sets it to true. This is NFC in mainline lldb, and will be used to modify how Swift breakpoint locations are printed.
-
lntue authored
-
David Green authored
This is useful when the inner add has multiple uses, and so cannot be canonicalized by pushing the constants down through the mul. This patch adds patterns for both `add(mul(add(A, CA), CM), CB)` and with an extra add `add(add(mul(add(A, CA), CM), B) CB)` as the second can come up when lowering geps.
-
Simon Pilgrim authored
Sibling patch to #89897
-
Teresa Johnson authored
If directed by an option, update hints on calls to new that already provide a hot/cold hint.
-
Dave Lee authored
Give language plugins the opportunity to provide a language specific display name. This will be used in a follow up commit. The purpose of this change is to ultimately display breakpoint locations with a more human friendly demangling of Swift symbols.
-
Andrzej Warzyński authored
The folder for arith::CeilDivSIOp should only be applied when it can be guaranteed that no overflow would happen. The current implementation works fine when both dividends are positive and the only arithmetic operation is the division itself. However, in cases where either the dividend or divisor is negative (or both), the division is split into multiple arith operations, e.g.: `- ( -a / b)`. That's additional 2 operations on top of the actual division that can overflow - the folder should check all 3 ops for overflow. The current logic doesn't do that - it effectively only checks the last operation (i.e. the division). It breaks when using e.g. MININT values (e.g. -128 for 8-bit integers) - negating such values overflows. This PR makes sure that no folding happens if any of the intermediate arithmetic operations overflows. Fixes https://github.com/llvm/llvm-project/issues/89382
-
Stanislav Mekhanoshin authored
NFCI as far as I understand, added for consitency.
-
Joseph Huber authored
Summary: This gets the target's corresponding ELF value from the preprocessor. We use this to detect if a given ELF is compatible with the CPU offloading impolementation for OpenMP. Previously we used defitions from CMake, but this is easier for people to understand as there may be new users of this in the future.
-
Thomas Raoux authored
Allow more cleanups on inline_asm ops modeling side effects based on the side_effect attributed.
-
David Green authored
-
Mariusz Borsa authored
The way the LIT RUN command is currently constructed ( %run not --crash %t ) causes the test failure on devices - since 'not' is a LLVM built command, not available on devices. Changing the command to read 'not --crash %run %t' fixes it, as 'not' now executes on the host running the test. rdar://115914588 Co-authored-by:
Mariusz Borsa <m_borsa@apple.com>
-
Florian Hahn authored
Add a set of tests with non-constant backward dependences, where the minimum value is known (via the start value of the outer AddRec).
-
Lily Brown authored
Adds the [DiagnosticTag][diagtag] LSP construct to the LSP support headers. I also added a unit test file to validate that the `tags` array is omitted entirely if it's empty. The LSP spec requires that `Diagnostic::tags` be an array; in order to conform to that I used `std::vector`, as `SmallVector` doesn't have JSON decoding support (you can encode it to JSON, but not decode it from JSON). [diagtag]: https://microsoft.github.io/language-server-protocol/specifications/lsp/3.18/specification/#diagnosticTag
-
Max191 authored
In some cases this pattern may ignore static information due to dynamic operands in the insert_slice sizes operands, e.g.: ``` %0 = tensor.cast %arg0 : tensor<1x?xf32> to tensor<?x?xf32> %1 = tensor.insert_slice %0 into %arg1[...] [%s0, %s1] [...] : tensor<?x?xf32> into tensor<?x?xf32> ``` Can be rewritten into: ``` %1 = tensor.insert_slice %arg0 into %arg1[...] [1, %s1] [...] : tensor<1x?xf32> into tensor<?x?xf32> ``` This PR updates the matching in the pattern to allow rewrites like this. -
Artem Belevich authored
-
Amir Ayupov authored
Returns are ignored in perf/pre-aggregated/fdata profile reader (see DataReader::convertBranchData). They are also omitted in YAMLProfileWriter by virtue of not having the profile attached to them in the reader, and YAMLProfileWriter converting the profile attached to BinaryFunctions. Thus, return profile is universally ignored across all profile types except BAT YAML. To make returns ignored for YAML produced in BAT mode, we can: 1) ignore them in YAMLProfileReader, 2) omit them from YAML profile in profile conversion/writing. The first option is prone to profile staleness issue, where the profiled binary doesn't match the one to be optimized, and thus returns in the profile can no longer be reliably detected (as we don't distinguish them from calls in the profile). The second option is robust to staleness but requires disassembling the branch source instruction. Test Plan: Updated bolt-address-translation-yaml.test Reviewers: rafaelauler, dcci, ayermolo, maksfb Reviewed By: maksfb Pull Request: https://github.com/llvm/llvm-project/pull/90807
-
Nico Weber authored
-
Mark de Wever authored
The patch does several things: - fixes module exports - disables clang-tidy with Clang-17 due to known issues - disabled clang-tidy on older libstdc++ versions since it lacks C++20 features used - fixes the CMake dependency The issue why clang-tidy was not used in the CI was the last issue; the plugin was not a dependency of the tests. Without a plugin the tests disable clang-tidy. This was noticed while investigating https://github.com/llvm/llvm-project/issues/89898
-
Piotr Zegar authored
Improved readability-static-accessed-through-instance check to support expressions with side-effects. Originally calls to overloaded operator were ignored by check, in fear of possible side-effects. This change remove that restriction, and enables fix-its for expressions with side-effect via --fix-notes. Closes #75163
-
Piotr Zegar authored
[clang-tidy] Handle implicit casts in hicpp-signed-bitwise for IgnorePositiveIntegerLiterals (#90621) Improved hicpp-signed-bitwise check by ignoring false positives involving positive integer literals behind implicit casts when IgnorePositiveIntegerLiterals is enabled. Closes #89367
-
AdityaK authored
-