Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SYCLomatic] Resolve conflict #1486

Closed
wants to merge 2,136 commits into from

Conversation

intwanghao
Copy link
Contributor

No description provided.

llvmgnsyncbot and others added 30 commits November 28, 2023 21:04
…ers (#72881)

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:
itanium-cxx-abi/cxx-abi#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.
This fixes the clang attributes documentation build.
… (#73701)

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.
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:

llvm/llvm-project#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.
…… (#73600)

…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.
…checking (#12027)

There are some build configuration when compiler tools could get picked
up from different locations. For this particular test, checking for PATH
of these tools is not required. Hence, we are removing the check.

Thanks

Signed-off-by: Sudarsanam, Arvind <[email protected]>
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.
…ar>` (#73535)

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.
…(#71412)

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.
This allows the parent build to depend on this target unconditionally
even when the tests are disabled.
…ual VLA (#71412)"

This reverts commit eaab947 because it
causes link error.
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.
<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.
This implements a new request to make the last fp-accuracy option on the
command line wins.
A warning is generated to warn the user.
Enable auto GRF mode by default on PVC on Linux. We are not doing this
for Windows because the driver doesn't support it.

We have run extensive internal testing and are convinced this will not
cause performance regressions, and will improve performance in some
cases.

You can revert to the previous behavior with
`-ftarget-register-alloc-mode=pvc:default`, and we will monitor
performance tracking after this and react as necessary.

Signed-off-by: Sarnie, Nick <[email protected]>
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.
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.
Migrates dangling convenience method into proper SparseTensorType class.
Also cleans up some details (picking right dim2lvl/lvl2dim). Removes
more dead code.
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.
…ess spaces (#69266)

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.
Reverts llvm/llvm-project#73591

Broke downstream builds. I will look into relanding tomorrow.
Slightly refactors the order of the sparse tensor
traits, and usage. Also makes minor doc improvements.
… of global variables (#73707)

In llvm/llvm-project#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.
IIUC in the new pass manager infrastructure, the analysis result is
always computed lazily. So just use `getResult` here.
VyacheslavLevytskyy and others added 25 commits November 30, 2023 11:02
- change Scope argument to one of two available options: ScopeWorkgroup/ScopeWorkgroup
- fix arguments order in calls to OpCooperativeMatrixLoadKHR()

Original commit:
KhronosGroup/SPIRV-LLVM-Translator@4e1d3e0
…ter (oneapi-src#2232)

This fixes reverse translation for SPV_INTEL_fpga_memory_accesses.
Theoretically it fixes more, but seems like without the extension we
don't generate UserSemantic decoration in this case at all. Will
be investigated separately.

Signed-off-by: Sidorov, Dmitry <[email protected]>

Original commit:
KhronosGroup/SPIRV-LLVM-Translator@ef0165a
There is a fundamental misalignment between when translating llvm.ptr.annotation to SPIRV's OpMemberDecorate.

llvm.ptr.annotation is applied onto a pointer.

OpMemberDecorate is applied on a type, which means that all variables of this type will have this Decoration.

This change fixes this misalignment by translating llvm.ptr.annotation to SPIRV's OpDecorate instead, which instead places the decoration onto the pointer.

Original commit:
KhronosGroup/SPIRV-LLVM-Translator@3770469
afe8b93 2023-11-25 [clang] Avoid
  memcopy for small structure with padding under -ftrivial-auto-var-init
  (#71677) [email protected]

Removed a call to memcopy, so we have 1 less attr.
…l accessors (#11921)

This change implements the last piece for block_store: local accessors
and SLM.

---------

Signed-off-by: Sarnie, Nick <[email protected]>
testing branch for
[PR](oneapi-src/unified-runtime#1072) and adding
necessary fixes for it.

Co-authored-by: omarahmed1111 <[email protected]>
In quite some PRs, we may need to push commits when the run is still in
progress.
Currently we will run all the workflow to the end by default, which is
somehow a waste of machine resource.

This PR use
https://docs.github.com/en/actions/using-jobs/using-concurrency to group
tests for Linux and Windows pre-commit tests, and cancel-in-progress if
new commits are pushed.
Because SYCL will throw an exception, malloced `ptr` will never freed,
which is a leak. Use std::vector to make it freed automatically.
…(#12029)

With the `-ftarget-register-alloc-mode` option, the user doesn't need to
pass IGC flags to the compiler to set the GRF mode. On PVC, emit a
warning in the most common case to suggest the user use the new option.
This doesn't catch every case because the `-device` syntax is
complicated, but it can help in the most common use case.

---------

Signed-off-by: Sarnie, Nick <[email protected]>
…1951)

Remove restriction that prevented clang-offload-wrapper from accepting
multiple table files.

---------

Signed-off-by: Lu, John <[email protected]>
Bumps [cryptography](https://github.com/pyca/cryptography) from 41.0.4
to 41.0.6.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst">cryptography's
changelog</a>.</em></p>
<blockquote>
<p>41.0.6 - 2023-11-27</p>
<pre><code>
* Fixed a null-pointer-dereference and segfault that could occur when
loading
certificates from a PKCS#7 bundle. Credit to **pkuzco** for reporting
the
  issue. **CVE-2023-49083**
<p>.. _v41-0-5:</p>
<p>41.0.5 - 2023-10-24
</code></pre></p>
<ul>
<li>Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL
3.1.4.</li>
<li>Added a function to support an upcoming <code>pyOpenSSL</code>
release.</li>
</ul>
<p>.. _v41-0-4:</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pyca/cryptography/commit/f09c261ca10a31fe41b1262306db7f8f1da0e48a"><code>f09c261</code></a>
41.0.6 release (<a
href="https://redirect.github.com/pyca/cryptography/issues/9927">#9927</a>)</li>
<li><a
href="https://github.com/pyca/cryptography/commit/5012bedaef2dc60af3955306774b77ef379116e3"><code>5012bed</code></a>
bump for 41.0.5 release (<a
href="https://redirect.github.com/pyca/cryptography/issues/9766">#9766</a>)</li>
<li><a
href="https://github.com/pyca/cryptography/commit/563b1193997512836603777d31e2ea281b3dc79a"><code>563b119</code></a>
Added binding needed for pyOpenSSL (<a
href="https://redirect.github.com/pyca/cryptography/issues/9739">#9739</a>)
(<a
href="https://redirect.github.com/pyca/cryptography/issues/9740">#9740</a>)</li>
<li>See full diff in <a
href="https://github.com/pyca/cryptography/compare/41.0.4...41.0.6">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cryptography&package-manager=pip&previous-version=41.0.4&new-version=41.0.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts page](https://github.com/intel/llvm/network/alerts).

</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…e_slm_acc.cpp (#12054)

Originally it seemed the problem was only on Windows, but it seems it
happens on Linux too, see
[here](intel/llvm#11921 (comment)).

I manually verified it fails consistently before this version and passes
consistently after this version.

Signed-off-by: Sarnie, Nick <[email protected]>
…rties" and driver support (#11989)

If the kernel is built with the flag "-fsanitize=address", we add a new
property "asanUsed" into "SYCL/misc properties", so that we can enable
the "UR_LAYER_ASAN" layer in the UR loader at piPluginInit.
…oint_matrix_load} with matrix spec (#12041)

[SYCL][Matrix]Align the parameter Group of APIs
{joint_matrix_store/joint_matrix_load} with matrix spec

---------

Signed-off-by: Ni, Wenhui <[email protected]>
The non-preview builtins do not currently allow the generic address
space in multi_ptr passed to them. The spec allows these however, so
this patch changes the builtins to allow these through.

---------

Signed-off-by: Larsen, Steffen <[email protected]>
PR batch in oneapi-src/unified-runtime#1102

---------

Co-authored-by: Kenneth Benzie (Benie) <[email protected]>
Previously, fusion would fail because an empty list of ND ranges is
determined to be incompatible.

Signed-off-by: Julian Oppermann <[email protected]>
…#12059)

It is still not prohibited to create 'simd_view' that views beyond the
bounds of viewed 'simd' object. And it is not yet prohibited to read
using such 'simd_view' object, but the commit
17f8939 prohibited writing beyong simd
bounds. The error message was difficult to read and did not give any
guidance on the proposed fix.

The old error message only said that __esimd_wrregion call could not be
matched. The newly added static assert says that the viewed object in
LHS does not fit the value in RHS.

Example of problem situation:
  simd<float, 16> vec; // vec is only 16-elements
  auto vec_too_bit_view = vec.select<128, 1>();// 128-elems - too many
  vec_too_bit_view = simd<float, 128>{0}; //error: write 128-elem to
16-elem storage

Signed-off-by: Klochkov, Vyacheslav N <[email protected]>
Signed-off-by: Wang, Hao3 <[email protected]>
@intwanghao intwanghao requested a review from a team as a code owner December 6, 2023 09:55
@intwanghao intwanghao closed this Dec 6, 2023
@intwanghao intwanghao deleted the conflict_12_6 branch December 6, 2023 14:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.