- May 13, 2022
-
-
wren romano authored
Work towards fixing: https://github.com/llvm/llvm-project/issues/51652 Depends On D122928 Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D122060
-
Med Ismail Bennani authored
This skips `TestCppIncompleteTypeMembers.py` on Darwin platforms since it requires `-flimit-debug-info` which is not supported. This should fix the Green Dragon bot test run: https://green.lab.llvm.org/green/job/lldb-cmake/43678 Signed-off-by:
Med Ismail Bennani <medismail.bennani@gmail.com>
-
Med Ismail Bennani authored
This patch adds a new `GetIndexForLineEntry` method to the `SBCompileUnit` class. As the name suggests, given an `SBLineEntry` object, this will return the line entry index within a specific compile unit. This method can take a `exact` boolean that will make sure that the provided line entry matches perfectly another line entry in the compile unit. rdar://47450887 Differention Revision: https://reviews.llvm.org/D125437 Signed-off-by:
Med Ismail Bennani <medismail.bennani@gmail.com>
-
owenca authored
If a closing brace is followed by a non-trailing comment, the newline before the closing brace must also be removed. Differential Revision: https://reviews.llvm.org/D125451
-
David Goldman authored
This behaves just like the sh/cmd.exe equivalents. pushd/popd are useful to verify path handling of the driver, typically testing prefix maps or relative path handling. Differential Revision: https://reviews.llvm.org/D125502
-
Tobias Ribizel authored
Currently, LLVM's LineEditor and LLDB both use libedit, but find them in different (inconsistent) ways. This causes issues e.g. when you are using a locally installed version of libedit, which will not be used by clang-query, but by lldb if picked up by FindLibEdit.cmake Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D124673
-
Aart Bik authored
Implements a floating-point sign operator (using the new semi-ring ops) that accomodates +/-Inf and +/-NaN in consistent way. Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D125494
-
River Riddle authored
The syntax highlighting for mlir has gotten a significant facelift, we also have some recent bug fixes for server launches.
-
River Riddle authored
The current grammar is really crusty, only supports a handful of cases, and is also out-of-date after various refactorings. This commit refactors the textmate grammar to handle significantly more cases, and now provides proper coloring for a majority of cases (including dialect attributes, operations, types, etc.) Differential Revision: https://reviews.llvm.org/D125458
-
Simon Dardis authored
Add the instructions and patterns for loads and stores in microMIPSr3 when a 64 bit FPU is present. Previously, this would lead to an instruction selection failure. This resolves PR/49200. Thanks to jdeguire for reporting the issue! Differential Revision: https://reviews.llvm.org/D124723
-
Florian Hahn authored
-
Simon Dardis authored
The MIPS backend attempts to combine integer multiply and addition or subtraction into a madd or msub operation. This optimization is heavily restricted due to its utility in many cases. PR/51114 highlighted that the optimization was performed on an associative basis which is correct in the `add` case but not in the `sub` case. Resolve this bug by performing an early exit in the case where the multiply is the LHS operand of the subtraction. This resolves PR/51114. Thanks to digitalseraphim for reporting the issue! Differential Revision: https://reviews.llvm.org/D124742
-
Jim Ingham authored
plugin to get queried earlier on in the startup, so that for .s files we call the language "unknown" not "not-loaded". This test was checking against that string, so I fixed it for the change.
-
Martin Storsjö authored
When we add `--unwindlib=none` during the CMake configure phase (to make CMake linking tests succeed before the unwind library has been built for the first time - when bootstrapping a cross toolchain from scratch), we add it to `CMAKE_REQUIRED_FLAGS` to make later CMake tests pass. When the option is added to `CMAKE_REQUIRED_FLAGS`, it gets added to both compilation and linking commands. When --unwindlib=none is added to the compilation command, it causes warnings (about being unused during compilation, as it only affects linking). When all CMake test compilations produce warnings, later CMake tests for `-Werror` fail. Add `--{start,end}-no-unused-arguments` around `--unwindlib=none`, if supported, to avoid unnecessary warnings due to this option. If the CMake requirement is bumped to 3.14, we could use `CMAKE_REQUIRED_LINK_OPTIONS` instead, removing the need for the `--{start,end}-no-unused-arguments` options. (However... -
Karl Meakin authored
Differential revision: https://reviews.llvm.org/D123781
-
Karl Meakin authored
`performFlagSettingCombine` is a generalised version of `performANDSCombine` which also works on `ADCS` and `SBCS`. Differential revision: https://reviews.llvm.org/D124464
-
Eli Friedman authored
-
River Riddle authored
We shouldn't be making assumptions about the result of llvm::getTypeName, which may have different results for anonymous namespaces depending on the platform.
-
River Riddle authored
This commit refactors the current pass manager support to allow for operation agnostic pass managers. This allows for a series of passes to be executed on any viable pass manager root operation, instead of one specific operation type. Op-agnostic/generic pass managers only allow for adding op-agnostic passes. These types of pass managers are extremely useful when constructing pass pipelines that can apply to many different types of operations, e.g., the default inliner simplification pipeline. With the advent of interface/trait passes, this support can be used to define FunctionOpInterface pass managers, or other pass managers that effectively operate on specific interfaces/traits/etc (see #52916 for an example). Differential Revision: https://reviews.llvm.org/D123536
-
Michael Jones authored
This adds the main pieces of the last piece of printf, the converter. This takes the completed format section from the parser and then converts it to a string for the writer, which is why it was the last piece to be written. So far it supports chars and strings, but more pieces are coming. Additionally, it supports replacing all of the conversion functions with user supplied versions at compile time to allow for additional functionality. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D125327
-
Michael Jones authored
This patch adds a document describing the status of the string functions in LLVM-libc. Reviewed By: sivachandra, lntue Differential Revision: https://reviews.llvm.org/D123823
-
Craig Topper authored
Differential Revision: https://reviews.llvm.org/D125491
-
Martin Storsjö authored
If the function has homed parameters but the number of saved registers is odd, the homed parameters are aligned at the top of the stack (so they line up with later varargs on the stack), not tightly after the other saved registers. Differential Revision: https://reviews.llvm.org/D125462
-
Jim Ingham authored
symbol name matches. Instead, we extract the incoming path's base name, look up all the symbols with that base name, and then compare the rest of the context that the user provided to make sure it matches. However, we do this comparison using just a strstr. So for instance: break set -n foo::bar will match not only "a::foo::bar" but "notherfoo::bar". The former is pretty clearly the user's intent, but I don't think the latter is, and results in breakpoints picking up too many matches. This change adds a Language::DemangledNameContainsPath API which can do a language aware match against the path provided. If the language doesn't provide this we fall back to the strstr (though that's changed to StringRef::contains in the patch). Differential Revision: https://reviews.llvm.org/D124579
-
Martin Storsjö authored
We add `--unwindlib=none` to `CMAKE_REQUIRED_FLAGS` to make sure that builds with a yet-incomplete toolchain succeed, to avoid linker failures about missing unwindlib. When this option is added to `CMAKE_REQUIRED_FLAGS`, it gets added to both compile and link commands in CMake compile tests. If `--unwindlib=none` is included in compilation commands, it causes warnings about unused arguments, as the flag only is relevant for linking. Due to the warnings in CMake tests, the later CMake test for the `-Werror` option failed (as the tested `-Werror` option caused the preexisting warning due to unused `--unwindlib=none` to become a hard error). Therefore, most CI configurations that build with `LIBCXX_ENABLE_WERROR` didn't actually end up enabling `-Werror` after all. When looking at the CI build log of recent CI builds, they do end up printing: -- Performing Test LIBCXX_SUPPORTS_WERROR_FLAG -- Performing Test LIBCXX_SUPPORTS_WERROR_FLAG - Failed -- Performing Test LIBCXX_SUPPORTS_WX_FLAG -- Performing Test LIBCXX_SUPPORTS_WX_FLAG - Failed Thus while the configurations are meant to error out on warnings, they actually haven't done that, due to the interaction of these options. To fix this, remove the individual cases of adding `--unwindlib=none` into `CMAKE_REQUIRED_FLAGS` in libcxx and libunwind. `runtimes/CMakeLists.txt` still adds `--unwindlib=none` if needed, but not otherwise. (The same issue with enabling `-Werror` does remain if `--unwindlib=none` strictly is needed though - that can be fixed separately afterwards.) These individual cases in libunwind and libcxx were added while standalone builds of the runtimes still were supported - but no longer are necessary now. Differential Revision: https://reviews.llvm.org/D124375 -
Ashay Rane authored
This patch references code for translating memref.reinterpret_cast ops to add translation rules for memref.reshape ops that have a static shape argument. Since reshape ops don't have offsets, sizes, or strides, this patch simply sets the allocated and aligned pointers of the MemRef descriptor. Reviewed By: ftynse, cathyzhyi Differential Revision: https://reviews.llvm.org/D125039
-
Louis Dionne authored
Otherwise, we might get errors with modules in pre-C++23 when mixing <atomic> and <stdatomic.h>. This should fix breakage on Green Dragon.
-
Michael Jones authored
This patch fixes the includes for the new UInt class so that the api test now passes, additionally it fixes the bazel files to account for the new dependencies. Differential Revision: https://reviews.llvm.org/D125490
-
Florian Hahn authored
Scaffolding support for generating runtime checks for multiple SCEV expressions per pointer. The initial version just adds support for looking through a single pointer select. The more sophisticated logic for analyzing forks is in D108699 Reviewed By: huntergr Differential Revision: https://reviews.llvm.org/D114487
-
Vasileios Porpodas authored
This is to support 0950d406. External users that can affect reordering, with range == VL.size() but non consecutive (like stores to A[0],A[0],A[3],A[3]) would escape the check for consecutive accesses and would cause a crash.
-
Michael Jones authored
Some platforms don't support proper 128 bit integers, but some algorithms use them, such as any that use long doubles. This patch modifies the existing UInt class to support the necessary operators. This does not put this new class into use, that will be in followup patches. Reviewed By: sivachandra, lntue Differential Revision: https://reviews.llvm.org/D124959
-
Félix Cloutier authored
This allows using any recognized kind of string for any __attribute__((format)) archetype. Before this change, for instance, the printf archetype would only accept char pointer types and the NSString archetype would only accept NSString pointers. This is more restrictive than necessary as there exist functions to convert between string types that can be annotated with __attribute__((format_arg)) to transfer format information. Reviewed By: ahatanak Differential Revision: https://reviews.llvm.org/D125254 rdar://89060618
-
Fangrui Song authored
We picked common-page-size to match GNU ld. Recently, the resolution to GNU ld https://sourceware.org/bugzilla/show_bug.cgi?id=28824 (milestone: 2.39) switched to max-page-size so that the last page can be protected by RELRO in case the system page size is larger than common-page-size. Thanks to our two RW PT_LOAD scheme (D58892), switching to max-page-size does not change file size (while GNU ld's scheme may increase file size). Reviewed By: peter.smith Differential Revision: https://reviews.llvm.org/D125410
-
Hongtao Yu authored
As a follow up to {D123271}, LBR ranges that are too big should also be considered as invalid. For example, the last two pairs in the following trace form a range [0x0d7b02b0, 0x368ba706] that covers a ton of functions in the binary. Such oversized range should also be ignored. 0x0c74505f/0x368b99a0 **0x368ba706**/0x0c745040 0x0d7b1c3f/**0x0d7b02b0** Add a defensive check to filter out those ranges based that the valid range should not cross the unconditional branch(Call, return, unconditional jmp). Reviewed By: hoy, wenlei Differential Revision: https://reviews.llvm.org/D125448 -
Blue Gaston authored
On arm64 the read/write flag is set on the esr register. Adding this flag check for arm64 enables a more accurate print out for sanitizer signal reports and matches the behavior on x86. Fixes bug: https://bugs.llvm.org/show_bug.cgi?id=27543 https://github.com/google/sanitizers/issues/653 These tests are now passing: SanitizerCommon-asan-arm64-Darwin :: Posix/illegal_read_test.cpp SanitizerCommon-asan-arm64-Darwin :: Posix/illegal_write_test.cpp SanitizerCommon-asan-arm64e-Darwin :: Posix/illegal_read_test.cpp SanitizerCommon-asan-arm64e-Darwin :: Posix/illegal_write_test.cpp SanitizerCommon-tsan-arm64-Darwin :: Posix/illegal_read_test.cpp SanitizerCommon-tsan-arm64-Darwin :: Posix/illegal_write_test.cpp SanitizerCommon-tsan-arm64e-Darwin :: Posix/illegal_read_test.cpp SanitizerCommon-tsan-arm64e-Darwin :: Posix/illegal_write_test.cpp SanitizerCommon-ubsan-arm64-Darwin :: Posix/illegal_read_test.cpp SanitizerCommon-ubsan-arm64-Darwin :: Posix/illegal_write_test.cpp SanitizerCommon-ubsan-arm64e-Darwin :: Posix/illegal_read_test.cpp SanitizerCommon-ubsan-arm64e-Darwin :: Posix/illegal_write_test.cpp rdar://92104440 Differential Revision: https://reviews.llvm.org/D125416
-
Sanjay Patel authored
As discussed in issue #37809, this transform is not safe if the input is an undefined value. This is similar to recent changes for urem and sdiv: d428f09b 99ef341c There is no difference in codegen on the basic examples, but this could lead to regressions. We may need to improve freeze analysis or lowering if that happens. Presumably, in real cases that are similar to the tests where a subsequent transform removes the rem, we will also be able to remove the freeze by seeing that the parameter has 'noundef'.
-
Philip Reames authored
We've got a lurking problem with our data flow implementation where different phases disagree, resulting in possible miscompiles. D119518 introduced a workaround, but failed to consider blocks without terminators (e.g. fallthroughs). I have a deeper rework of the algorithm in flight over in D125232, but this patch is specifically a minimal fix for an active miscompile. That change can be reworked over this once landed. Differential Revision: https://reviews.llvm.org/D125408
-
Louis Dionne authored
-
Aaron Ballman authored
With sufficiently tortured code, it's possible to cause a stack overflow when parsing declarators. Thus, we now check for resource exhaustion when recursively parsing declarators so that we can at least warn the user we're about to crash before we actually crash. Fixes #51642 Differential Revision: https://reviews.llvm.org/D124915
-
Louis Dionne authored
As a fly-by fix, also let `__cxa_demangle` allocate its buffer alone, since we are not allowed to pass a non-malloc'd buffer to it. Differential Revision: https://reviews.llvm.org/D125268
-