- Jan 28, 2023
-
-
Tom Stellard authored
libclc requires using cmake files to detect the LLVM installation instead of llvm-config so we need to update our cmake invocation. Reviewed By: thieta Differential Revision: https://reviews.llvm.org/D142716
-
Tom Stellard authored
Reviewed By: thieta Differential Revision: https://reviews.llvm.org/D142718
-
Erich Keane authored
Fixes: #60323 https://github.com/llvm/llvm-project/issues/60323 The problem is that we are profiling the 'Expr' components directly, however when they contain an unresolved lookup, those canonicalize identically. The result was the two versions of calls to 'go' were canonicalized identically. This patch fixes this by ensuring we consider the declaration the constraint is attached to, when possible. When not, we skip the diagnostic. The result is that we are relaxing our diagnostic in some cases (Of which I couldn't come up with a reproducer), such that we might see overflows when evaluating constraints that depend on themselves in a way that they are not attached to a declaration directly, such as if they are nested requirements, though the hope is this won't be a problem, since the 'parent' named constraint would catch this. I'm hopeful that the 'worst case' is that we catch recursion 'later' in the process, instead of immediately.
-
Tom Stellard authored
Reviewed By: thieta Differential Revision: https://reviews.llvm.org/D142719
-
Piotr Zegar authored
When portability-simd-intrinsics.Suggest were set to false, produced warning were missing source location, and due to that such warning coudn't be NOLINTed. Added missing tests. Fixes issues: https://github.com/llvm/llvm-project/issues/52831 Differential Revision: https://reviews.llvm.org/D142565
-
Tom Stellard authored
Reviewed By: thieta Differential Revision: https://reviews.llvm.org/D142720
-
Amir Ayupov authored
Preemptively include clang-bolt target in BOLT-PGO CMake cache file, in preparation of https://reviews.llvm.org/D139454 to avoid breaking bolt-x86_64-ubuntu-clang-bolt-lto-pgo buildbot.
-
Jorge Gorbe Moya authored
`SBSection::GetSectionData` and `Section::GetSectionData` are implemented differently, and the `SBSection` method doesn't handle compressed sections correctly. Differential Revision: https://reviews.llvm.org/D142672
-
Arthur Eubanks authored
It builds but not all tests pass, mostly due to missing libbolt_rt_instr.a. Reviewed By: thakis Differential Revision: https://reviews.llvm.org/D141881
-
Qiao Zhang authored
Fix tsan problem where the per-thread shared_ptr() can be locked right before the cache is destroyed causing a race where it tries to remove an entry from a destroyed cache. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D142394
-
Jason Molenda authored
The description for disable-language-runtime-unwindplans did not include likely search terms ("backtrace", "stack"), rewrite it to include those so it is more easily discoverable with apropos. The text is still not the clearest description of what a language runtime is / what it might do, but this is better. Differential Revision: https://reviews.llvm.org/D142663 -
Jason Molenda authored
It is possible to have a memory-only mach-o corefile, with the threads provided by an os-plugin thread provider, or a scripted process, in Python. Differential Revision: https://reviews.llvm.org/D142662 rdar://102579544
-
Joseph Huber authored
Summary: This patch adds support for `--[no-]whole-archive` to the linker wrapper. This allows us to bypass the symbol resolution logic that is normally used for static archives. For multi-architecture binaries this also allows us to build for every single member.
-
Stefan Gränitz authored
WinEHPrepare requires funclet operand bundles ("tokens") on function calls from EH funclets to prevent them from getting removed as "implausible" calls. This includes calls to intrinsic functions that lower to function calls in the course of IR transformations (e.g. ObjC ARC runtime calls). We can not detect such cases in WinEHPrepare itself, because at this point they mixed up with valid implausible calls. These must be removed to guarantee that the EH backend can assign unique colors and EH state numbers to all blocks. This patch allows the IR Verifier to detect missing and dangling funclet tokens. Non-conforming IR becomes illegal and miscompilations are detected early. In order to find funclet pad instructions for funclets that extend over multiple blocks, we have to calculate EH funclet colors. As coloring can be expensive, it runs on-demand and results are cached per function. Reviewed By: efriedma Differe... -
Stefan Gränitz authored
Computing EH-related information was only relevant for analysis passes so far. Lifting it to IR will allow the IR Verifier to calculate EH funclet coloring and validate funclet operand bundles in a follow-up step. Reviewed By: rnk, compnerd Differential Revision: https://reviews.llvm.org/D138122
-
Matthias Springer authored
The handling of unknown ops will be tightened in a subsequent change. All sparse_tensor ops should implement BufferizableOpInterface, otherwise, they are treated as "unknown" and additional buffer allocs/copies may be inserted around them. Differential Revision: https://reviews.llvm.org/D142005
-
Matthias Springer authored
Writing into the memrefs returned by `sparse_tensor.to_values` etc. can cause additional copies during bufferization. Differential Revision: https://reviews.llvm.org/D142728
-
Joseph Huber authored
Summary: These options are no longer used, we don't need to keep them.
-
Michael Buch authored
Since https://reviews.llvm.org/D141827 this field gets used to print type names. Thus propagate it after importing TemplateArguments from modules. **Testing** * Confirmed that this fixes the ongoing `import-std-module` test failures. Differential Revision: https://reviews.llvm.org/D142714
-
Michael Buch authored
With https://reviews.llvm.org/D141826 `TemplateArgument`s have an additional field that indicates their defaulted-ness. This gets used during debug-info generation and in the `clang::TypePrinter`. This patch copies the field during the import process so consumers of the ASTImporter can benefit from the other Clang components that read the field. **Testing** * Added unit-test * Checked that this fixes (in addition to a follow-up LLDB patch) fix current test failures in LLDB Differential Revision: https://reviews.llvm.org/D142713
-
Matthias Springer authored
Deduplicate large parts of the worklist processing (`GreedyPatternRewriteDriver::processWorklist`). The new class hierarchy is as follows: ``` GreedyPatternRewriteDriver (abstract) ^ | ----------------------------------- | | RegionPatternRewriteDriver MultiOpPatternRewriteDriver ``` Also update the Markdown documentation. Differential Revision: https://reviews.llvm.org/D141396 -
Sacha Ballantyne authored
This patch adds a simplfiied version of count for the simplify intrinsics pass, allowing the function to be inlined. This was done specifically to help improve performance for exchange2, and provides a ~12% performance increase. Reviewed By: vzakhari, Leporacanthicus Differential Revision: https://reviews.llvm.org/D142209
-
Nico Weber authored
Needed to link e.g. LexTests after ca446037.
-
Aaron Ballman authored
We were linking against: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2148.htm However, the latest DR page for the 400s is: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2396.htm
-
Tue Ly authored
Implement asinhf function correctly rounded for all rounding modes. Reviewed By: zimmermann6 Differential Revision: https://reviews.llvm.org/D142681
-
Mark de Wever authored
This test already had issues and bumping main to 17 causes them to fail again.
-
Florian Hahn authored
-
Aaron Ballman authored
This was a mistake from e7300e75 (https://reviews.llvm.org/D133574) caused by us accidentally tracking an older copy of the C DR list for DR496. The text in https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2396.htm#dr_496 makes it clear that subobjects are allowed, which means member and array access expressions are allowed. This backs out the changes from the previous commit that relate to this diagnostic.
-
- Jan 27, 2023
-
-
Nico Weber authored
-
Samuel Parker authored
This reverts commit 85395af2. This is causing trouble with scalable vectors.
-
Lucas Prates authored
Reviewed By: tmatheson Differential Revision: https://reviews.llvm.org/D142541
-
Tue Ly authored
Currently LIBC_TARGET_OS query from compiler triple returns `apple` for macOS. This change will fix it back to `darwin` as before. Differential Revision: https://reviews.llvm.org/D141282
-
Tom Stellard authored
Reviewed By: thieta Differential Revision: https://reviews.llvm.org/D142598
-
Matthias Springer authored
`strictMode` is moved to GreedyRewriteConfig to simplify the API and state of rewriter classes. The region-based GreedyPatternRewriteDriver now also supports strict mode. MultiOpPatternRewriteDriver becomes simpler: fewer method must be overridden. Differential Revision: https://reviews.llvm.org/D142623
-
Florian Hahn authored
This patch updates SCCP to use the value ranges of AddInst operands to try to prove the AddInst does not overflow in the signed sense and adds the NSW flag. The reasoning is done with makeGuaranteedNoWrapRegion (thanks @nikic for point it out!). Follow-ups will include extending this to more OverflowingBinaryOperators. Depends on D142387. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D142390
-
Matthias Springer authored
The multi-op entry point now also takes a GreedyPatternRewriteConfig and respects config.maxNumRewrites. The scope is also a part of the config now. Differential Revision: https://reviews.llvm.org/D142614
-
Michael Buch authored
`std::sort` requires a comparison operator that obides by strict weak ordering. `operator<=` on pointer does not and leads to undefined behaviour. Specifically, when we grow the `scratch_type_systems` vector slightly larger (and thus take `std::sort` down a slightly different codepath), we segfault. This happened while working on a patch that would in fact grow this vector. In such a case ASAN reports: ``` $ ./bin/lldb ./lldb-test-build.noindex/lang/cpp/complete-type-check/TestCppIsTypeComplete.test_builtin_types/a.out -o "script -- lldb.target.FindFirstType(\"void\")" (lldb) script -- lldb.target.FindFirstType("void") ================================================================= ==59975==ERROR: AddressSanitizer: container-overflow on address 0x000108f6b510 at pc 0x000280177b4c bp 0x00016b7d7430 sp 0x00016b7d7428 READ of size 8 at 0x000108f6b510 thread T0 #0 0x280177b48 in std::__1::shared_ptr<lldb_private::TypeSystem>::shared_ptr[abi:v15006](std::__1::shared_ptr<lldb_private::TypeSystem> const&)+0xb4 (/Users/michaelbuch/Git/lldb-build-main-no-modules/lib/liblldb.17.0.0git.dylib:arm64+0x177b48) (BuildId: ea963d2c0d47354fb647f5c5f32b76d932000000200000000100000000000d00) #1 0x280dcc008 in void std::__1::__introsort<std::__1::_ClassicAlgPolicy, lldb_private::Target::GetScratchTypeSystems(bool)::$_3&, std::__1::shared_ptr<lldb_private::TypeSystem>*>(std::__1::shared_ptr<lldb_private::TypeSystem>*, std::__1::shared_ ptr<lldb_private::TypeSystem>*, lldb_private::Target::GetScratchTypeSystems(bool)::$_3&, std::__1::iterator_traits<std::__1::shared_ptr<lldb_private::TypeSystem>*>::difference_type)+0x1050 (/Users/michaelbuch/Git/lldb-build-main-no-modules/lib/liblld b.17.0.0git.dylib:arm64+0xdcc008) (BuildId: ea963d2c0d47354fb647f5c5f32b76d932000000200000000100000000000d00) #2 0x280d88788 in lldb_private::Target::GetScratchTypeSystems(bool)+0x5a4 (/Users/michaelbuch/Git/lldb-build-main-no-modules/lib/liblldb.17.0.0git.dylib:arm64+0xd88788) (BuildId: ea963d2c0d47354fb647f5c5f32b76d932000000200000000100000000000d00) #3 0x28021f0b4 in lldb::SBTarget::FindFirstType(char const*)+0x624 (/Users/michaelbuch/Git/lldb-build-main-no-modules/lib/liblldb.17.0.0git.dylib:arm64+0x21f0b4) (BuildId: ea963d2c0d47354fb647f5c5f32b76d932000000200000000100000000000d00) #4 0x2804e9590 in _wrap_SBTarget_FindFirstType(_object*, _object*)+0x26c (/Users/michaelbuch/Git/lldb-build-main-no-modules/lib/liblldb.17.0.0git.dylib:arm64+0x4e9590) (BuildId: ea963d2c0d47354fb647f5c5f32b76d932000000200000000100000000000d00) #5 0x1062d3ad4 in cfunction_call+0x5c (/opt/homebrew/Cellar/python@3.11/3.11.1/Frameworks/Python.framework/Versions/3.11/Python:arm64+0xcfad4) (BuildId: c9efc4bbb1943f9a9b7cc4e91fce477732000000200000000100000000000d00) <--- snipped ---> 0x000108f6b510 is located 400 bytes inside of 512-byte region [0x000108f6b380,0x000108f6b580) allocated by thread T0 here: #0 0x105209414 in wrap__Znwm+0x74 (/Applications/Xcode2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.3/lib/darwin/libclang_rt.asan_osx_dynamic.dylib:arm64e+0x51414) (BuildId: 0a44828ceb64337bbfff60b22cd838f0320000 00200000000100000000000b00) #1 0x280dca3b4 in std::__1::__split_buffer<std::__1::shared_ptr<lldb_private::TypeSystem>, std::__1::allocator<std::__1::shared_ptr<lldb_private::TypeSystem>>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator<std::__1::shared_pt r<lldb_private::TypeSystem>>&)+0x11c (/Users/michaelbuch/Git/lldb-build-main-no-modules/lib/liblldb.17.0.0git.dylib:arm64+0xdca3b4) (BuildId: ea963d2c0d47354fb647f5c5f32b76d932000000200000000100000000000d00) #2 0x280dc978c in void std::__1::vector<std::__1::shared_ptr<lldb_private::TypeSystem>, std::__1::allocator<std::__1::shared_ptr<lldb_private::TypeSystem>>>::__push_back_slow_path<std::__1::shared_ptr<lldb_private::TypeSystem> const&>(std::__1::s hared_ptr<lldb_private::TypeSystem> const&)+0x13c (/Users/michaelbuch/Git/lldb-build-main-no-modules/lib/liblldb.17.0.0git.dylib:arm64+0xdc978c) (BuildId: ea963d2c0d47354fb647f5c5f32b76d932000000200000000100000000000d00) #3 0x280d88dec in std::__1::vector<std::__1::shared_ptr<lldb_private::TypeSystem>, std::__1::allocator<std::__1::shared_ptr<lldb_private::TypeSystem>>>::push_back[abi:v15006](std::__1::shared_ptr<lldb_private::TypeSystem> const&)+0x80 (/Users/mic haelbuch/Git/lldb-build-main-no-modules/lib/liblldb.17.0.0git.dylib:arm64+0xd88dec) (BuildId: ea963d2c0d47354fb647f5c5f32b76d932000000200000000100000000000d00) #4 0x280d8857c in lldb_private::Target::GetScratchTypeSystems(bool)+0x398 (/Users/michaelbuch/Git/lldb-build-main-no-modules/lib/liblldb.17.0.0git.dylib:arm64+0xd8857c) (BuildId: ea963d2c0d47354fb647f5c5f32b76d932000000200000000100000000000d00) #5 0x28021f0b4 in lldb::SBTarget::FindFirstType(char const*)+0x624 (/Users/michaelbuch/Git/lldb-build-main-no-modules/lib/liblldb.17.0.0git.dylib:arm64+0x21f0b4) (BuildId: ea963d2c0d47354fb647f5c5f32b76d932000000200000000100000000000d00) #6 0x2804e9590 in _wrap_SBTarget_FindFirstType(_object*, _object*)+0x26c (/Users/michaelbuch/Git/lldb-build-main-no-modules/lib/liblldb.17.0.0git.dylib:arm64+0x4e9590) (BuildId: ea963d2c0d47354fb647f5c5f32b76d932000000200000000100000000000d00) #7 0x1062d3ad4 in cfunction_call+0x5c (/opt/homebrew/Cellar/python@3.11/3.11.1/Frameworks/Python.framework/Versions/3.11/Python:arm64+0xcfad4) (BuildId: c9efc4bbb1943f9a9b7cc4e91fce477732000000200000000100000000000d00) #8 0x10627fff0 in _PyObject_MakeTpCall+0x7c (/opt/homebrew/Cellar/python@3.11/3.11.1/Frameworks/Python.framework/Versions/3.11/Python:arm64+0x7bff0) (BuildId: c9efc4bbb1943f9a9b7cc4e91fce477732000000200000000100000000000d00) #9 0x106378a98 in _PyEval_EvalFrameDefault+0xbcf8 (/opt/homebrew/Cellar/python@3.11/3.11.1/Frameworks/Python.framework/Versions/3.11/Python:arm64+0x174a98) (BuildId: c9efc4bbb1943f9a9b7cc4e91fce477732000000200000000100000000000d00) ``` Differential Revision: https://reviews.llvm.org/D142709 -
Lucas Prates authored
This updates the AArch64's Target Parser and its uses to capture information about default features directly from ArchInfo and CpuInfo objects, instead of relying on an API function to access them indirectly. Reviewed By: tmatheson Differential Revision: https://reviews.llvm.org/D142540
-
Lucas Prates authored
This updates the parsing methods in AArch64's Target Parser to make use of optional returns instead of "invalid" enum values, making the API's behaviour clearer. Reviewed By: lenary, tmatheson Differential Revision: https://reviews.llvm.org/D142539
-
Luca Di Sera authored
The new method is a wrapper of `CXXConstructorDecl::isExplicit` and `CXXConversionDecl::isExplicit`, allowing the user to recognize whether the declaration pointed to by a cursor was marked with the explicit specifier. An export for the function, together with its documentation, was added to "clang/include/clang-c/Index.h" with an implementation provided in "clang/tools/libclang/CIndex.cpp". The implementation is based on similar `clang_CXXMethod` implementations, returning a falsy unsigned value when the cursor is not a declaration, is not a declaration for a constructor or conversion function or is not a relevant declaration that was marked with the `explicit` specifier. The new symbol was added to "clang/tools/libclang/libclang.map" to be exported, under the LLVM16 tag. "clang/tools/c-index-test/c-index-test.c" was modified to print a specific tag, "(explicit)", for cursors that are recognized by `clang_CXXMethod_isExplicit`. Two new regression files, "ex...
-