- Nov 29, 2023
-
-
frgossen authored
-
Chuanqi Xu authored
Close https://github.com/llvm/llvm-project/issues/72828. This should be an overlook that we extend the type of captures but we forgot to fix it in deserializer side.
-
Schrodinger ZHU Yifan authored
* avoid implicit narrowing conversion * move hsearch entrypoints to FULL_BUILD
-
Teresa Johnson authored
Add __memprof_profile_reset() interface which can be used to facilitate dumping multiple rounds of profiles from a single binary run. This closes the current file descriptor and resets the internal file descriptor to invalid (-1), which ensures the underlying writer reopens the recorded profile filename. This can be used once the client is done moving or copying a dumped profile, to prepare for reinvoking profile dumping.
-
Yuxuan Chen authored
[Clang] CGCoroutines skip emitting try block for value returning `noexcept` init `await_resume` calls (#73160) Previously we were not properly skipping the generation of the `try { }` block around the `init_suspend.await_resume()` if the `await_resume` is not returning void. The reason being that the resume expression was wrapped in a `CXXBindTemporaryExpr` and the first dyn_cast failed, silently ignoring the noexcept. This only mattered for `init_suspend` because it had its own try block. This patch changes to first extract the sub expression when we see a `CXXBindTemporaryExpr`. Then perform the same logic to check for `noexcept`. Another version of this patch also wanted to assert the second step by `cast<CXXMemberCallExpr>` and as far as I understand it should be a valid assumption. I can change to that if upstream prefers. -
Craig Topper authored
-
Schrodinger ZHU Yifan authored
This patch implements `hcreate(_r)/hsearch(_r)/hdestroy(_r)` as specified in https://man7.org/linux/man-pages/man3/hsearch.3.html. Notice that `neon/asimd` extension is not yet added in this patch. - The implementation is largely simplified from rust's [`hashbrown`](https://github.com/rust-lang/hashbrown/blob/master/src/raw/mod.rs) as we only consider fix-sized insertion-only hashtables. Technical details are provided in code comments. - This patch also contains a portable string hash function, which is derived from [`aHash`](https://github.com/tkaitchuck/aHash)'s fallback routine. Not using any SIMD acceleration, it has a good enough quality (passing all SMHasher tests) and is not too bad in speed. - Some general functionalities are added, such as `memory_size`, `offset_to`(alignment), `next_power_of_two`, `is_power_of_two`. `ctz/clz` are extended to support shorter integers.
-
LiqinWeng authored
-
Aart Bik authored
This is a minor step towards moving ALL COO related tests into the SparseTensorType class rather than having it all over the place (with risk of becoming inconsistent). Next revision will move ALL COO related methods into this class.
-
Heejin Ahn authored
When doing LTO on multiple archives, the order with which bitcodes are linked to the LTO module is hard to control, given that processing undefined symbols can lead to parsing of an object file, which in turn lead to parsing of another object file before finishing parsing of the previous file. This can result in encountering a non-prevailing comdat first when linking, which can make the the symbol undefined, and the real definition is added later with an additional prefix to avoid duplication (e.g. `__cxx_global_var_init` and `__cxx_global_var_init.2`) So this one-line fix ensures we compile bitcodes in the order that we process comdats, so that when multiple archived bitcode files have the same variable with the same comdat, we make sure that the prevailing comdat will be linked first in the LTO. Fixes #62243.
-
Johannes Doerfert authored
Everywhere else we define this in the CMakeLists.txt and "private.h" needs to go. Rename "Libomptarget" into "omptarget", no benefit from "lib".
-
Edgar authored
The test was checking something unrelated to what it controlled so it failed after that part changed, i removed that. See https://github.com/llvm/llvm-project/pull/73117
-
Qizhi Hu authored
Co-authored-by:huqizhi <836744285@qq.com>
-
paperchalice authored
IIUC in the new pass manager infrastructure, the analysis result is always computed lazily. So just use `getResult` here.
-
Alexander Yermolovich authored
Nit followup to 72729.
-
Michael Buch authored
In https://github.com/llvm/llvm-project/pull/73626 we started attaching `DW_AT_const_value`s on a static data-member's declaration again. In DWARFv5, those static members are represented with a `DW_TAG_variable`. When LLDB builds the `ManualDWARFIndex`, it simply iterates over all DIEs in a CU and puts *any* `DW_TAG_variable` with a constant or location into the index. So when using the manual index, we can end up having 2 entries for a static data member in the index, one for the declaration and one for the definition. This caused a test failure on Linux (where DWARFv5 is the default and the tests use the manual index). This patch loosens the restriction that we find exactly 1 variable.
-
Aart Bik authored
Slightly refactors the order of the sparse tensor traits, and usage. Also makes minor doc improvements.
-
michaelrj-google authored
Reverts llvm/llvm-project#73591 Broke downstream builds. I will look into relanding tomorrow.
-
Alex Voicu authored
For certain cases (e.g. when their address is observable at run time) it is necessary to provide physical backing for non-type template parameter objects. Said backing comes in the form of a global variable. For certain targets (e.g. AMDGPU), which use a non-default address space for globals, this can lead to an issue when referencing said global in address space agnostic languages (such as HIP), for example when passing them to a function. This patch addresses this issue by inserting an address space cast iff there is an address space mismatch between the type of a reference expression and the address space of the backing global. A test is also added.
-
Shilei Tian authored
Use of VLA can cause compile warning that was introduced in D156565. This patch implements a simple stack/heap-based VLA that can miminc the behavior of an actual VLA and prevent the warning. By default the stack accomodates the elements. If the number of emelements is greater than N, which by default is 8, a heap buffer will be allocated and used to acccomodate the elements.
-
Aart Bik authored
Migrates dangling convenience method into proper SparseTensorType class. Also cleans up some details (picking right dim2lvl/lvl2dim). Removes more dead code.
-
Shilei Tian authored
This reverts commit d46f6355.
-
Shilei Tian authored
Use of VLA can cause compile warning that was introduced in D156565. This patch implements a simple stack/heap-based VLA that can miminc the behavior of an actual VLA and prevent the warning. By default the stack accomodates the elements. If the number of emelements is greater than N, which by default is 8, a heap buffer will be allocated and used to acccomodate the elements.
-
Alexander Yermolovich authored
Fixed handling of DWP as input. Before BOLT crashed. Now it will write out correct CU, and all the TUs. Potential future improvement is to scan all the TUs used in this CU, and only include those.
-
Louis Dionne authored
<filesystem> is a C++17 addition. In C++11 and C++14 modes, we actually have all the code for <filesystem> but it is hidden behind a non-inline namespace __fs so it is not accessible. Instead of doing this unusual dance, just guard the code for filesystem behind a classic C++17 check like we normally do.
-
Johannes Doerfert authored
Not everything in libomptarget (include) is "OpenMP", but some things most certainly are. This commit moves some code around to start making this distinction without the intention to change functionality.
-
Shilei Tian authored
This reverts commit eaab947a because it causes link error.
-
Petr Hosek authored
This allows the parent build to depend on this target unconditionally even when the tests are disabled.
-
Shilei Tian authored
Use of VLA can cause compile warning that was introduced in D156565. This patch implements a simple stack/heap-based VLA that can miminc the behavior of an actual VLA and prevent the warning. By default the stack accomodates the elements. If the number of emelements is greater than N, which by default is 8, a heap buffer will be allocated and used to acccomodate the elements.
-
Stephan T. Lavavej authored
Found while running libc++'s test suite with MSVC's STL. [mdspan.extents.overview]/1.1 mandates that IndexType is a signed or unsigned integer type, which excludes char. MSVC's STL enforces the Mandates here, so this PR changes the relevant occurrences of `char to `signed char`. To make this work, we also need to add an `operator signed char()` to the test helper type `IntType` so it remains unambiguously convertible, and then we can remove `operator char()`. libc++ should also enforce the Mandates, but this PR doesn't attempt to make such a change.
-
michaelrj-google authored
Previously the nextafter and nexttoward implementations were almost identical, with the exception of whether or not the second argument was a template or just long double. This patch unifies them by making the two argument templates independent.
-
Johannes Doerfert authored
-
PiJoules authored
…ing size About 90% of the time when running scudo tests on fuchsia+riscv with asan instrumentation, we will be unable to map the arena for scudo's primary allocator. We have enough space, but much of the existing allocations are fragmented enough such that we can't allocate that large enough contiguous space. This reduces fragmentation more by increase min allocation rounding for user-map and freearray in the primary allocator. Note that changing these values doesn't have a functional effect on the actual size of the user-map or freearray portions of a region. Those are toggled by different constants. This will reduce the number of times mmap is called and reduce the number of fragments. Locally, I've been able to run the scudo tests under asan-instrumentation on riscv 39-bit vma and haven't run into the `SCUDO ERROR: zx_vmar_map` error.
-
Arthur Eubanks authored
This reverts commit 38e43589. May be culprit for https://lab.llvm.org/buildbot/#/builders/37/builds/28079/steps/9/logs/stdio.
-
Greg Clayton authored
This is a follow up patch after .debug_names can now emit local type unit entries when we compile with type units + DWARF5 + .debug_names. The pull request that added this functionality was: https://github.com/llvm/llvm-project/pull/70515 This patch makes sure that the DebugNamesDWARFIndex in LLDB will not manually need to parse type units if they have a valid index. It also fixes the index to be able to correctly extract name entries that reference type unit DIEs. Added a test to verify things work as expected.
-
Johannes Doerfert authored
Headers used throughout the different runtimes are different from the internal headers. This is a first step to bring structure in into the include folder.
-
Chris Bieneman authored
This fixes the clang attributes documentation build.
-
Michael Buch authored
The mangling for an explicitly named object was introduced in https://reviews.llvm.org/D140828 See following discussion for why a new mangling had to be introduced: https://github.com/itanium-cxx-abi/cxx-abi/issues/148 Since clang started emitting names with the new mangling, this patch implements support for demangling such names. The approach this patch takes is to add a new `ExplicitObjectParameter` node that will print the first parameter of a function declaration with a `this ` prefix, to reflect what was spelled out in source. Example: ``` void MyClass::func(this MyClass const& self); // _ZNH7MyClass4funcERKS_ ``` With this patch, the above demangles to: ``` _ZNH7MyClass4funcERKS_ -> MyClass::func(this MyClass const&) ``` Note that `func` is not marked as `const &`, since the function-qualifiers are now encoded as part of the explicit `this`. C++ doesn't allow specifying the function-qualifiers in the presence of an explicit object parameter, so this demangling is consistent with the source spelling.
-
LLVM GN Syncbot authored
-
Chris B authored
This change implements parsing for HLSL's parameter modifier keywords `in`, `out` and `inout`. Because HLSL doesn't support references or pointers, these keywords are used to allow parameters to be passed in and out of functions. This change only implements the parsing and AST support. In the HLSL ASTs we represent `out` and `inout` parameters as references, and we implement the semantics of by-value passing during IR generation. In HLSL parameters marked `out` and `inout` are ambiguous in function declarations, and `in`, `out` and `inout` may be ambiguous at call sites. This means a function may be defined as `fn(in T)` and `fn(inout T)` or `fn(out T)`, but not `fn(inout T)` and `fn(out T)`. If a funciton `fn` is declared with `in` and `inout` or `out` arguments, the call will be ambiguous the same as a C++ call would be ambiguous given declarations `fn(T)` and `fn(T&)`. Fixes #59849
-