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

LLVM and SPIRV-LLVM-Translator pulldown (WW43) #11670

Merged
merged 711 commits into from
Oct 31, 2023
Merged

LLVM and SPIRV-LLVM-Translator pulldown (WW43) #11670

merged 711 commits into from
Oct 31, 2023

Conversation

jsji
Copy link
Contributor

@jsji jsji commented Oct 26, 2023

RKSimon and others added 30 commits October 24, 2023 15:13
Even something as simple as bitlogic ops are showing differences between DAG/Fast/Global ISel - promotion, commutation, load/rmw folding etc.
simplifyWithOpReplaced() has become more powerful in the
meantime, subsuming these folds.
This has been subsumed by the more general simplifyWithOpReplaced()
fold.
This has been subsumed by simplifyWithOpReplaced().
…l (#65650)"

Original commit message: "

Add Documentation for Execution Results Handling in Clang-Repl (#65650)

    [clang-repl] Add Documentation for Execution Results Handling.

    This patch adds documentation for execution results handling in
    Clang-REPL with
    the below features:

    - Automatic Printf feature
    - Value Synthesis feature
    - Pretty Printing feature

    Continuing this work https://reviews.llvm.org/D156858 with this PR. I am
    issuing this patch on behalf of Saqib.

"

This reverts commit ac32d7b.

The new patch resolves the layering violation by simply not trying to look if
`dot` was installed. This is consistent with what we do other extensions.

After this patch we will need `sphinx.ext.graphviz` extension (part of the `dot`
package) which is available via anyway if we build the doxygen-based
documentation.
Pointer bitcasts will be optimized away, no need to fold them for
icmps in particular.
Set the correct end for the CastOperation.OpRange in CXXFunctionalCastExpr.
Now it is the closing bracket's location instead of the parameter's location.

This can lead to better highlight in the diagnostics.
Similar to llvm/llvm-project#66853

Before:

warning: cast from 'long (*)(const int &)' to 'decltype(fun_ptr)' (aka 'long (*)(int &)') converts to incompatible function type [-Wcast-function-type-strict]
   24 | return decltype(fun_ptr)( f_ptr /*comment*/);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~

After:

warning: cast from 'long (*)(const int &)' to 'decltype(fun_ptr)' (aka 'long (*)(int &)') converts to incompatible function type [-Wcast-function-type-strict]
   24 | return decltype(fun_ptr)( f_ptr /*comment*/);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Reviewed By: AaronBallman, tbaederr

GitHub PR: llvm/llvm-project#69480
Change the NVVM assembly to `fatbin` as it is executable for multiple
architectures. Using `bin` caused test errors at runtime in the test
systems.
…NFCI)

Base - Offset == 0 will get canonicalized to Base == Offset even
in multi-use contexts, at which point all of these patterns already
get handled by generic code.
The vector sext limitation the comment talks about has been removed
a long time ago, in https://reviews.llvm.org/D36213.
This is handling a special case of demanded bits simplification
(which has multi-use support for adds, so it's not applicable in
that case either).
If the mask is resizing and the mask size is greater than than the
length of the vector, being reused from extractelement instructions, the
mask for undefs cannot be treated as identity, must be treated as
a broadcast.
…) fold (NFCI)

This optimizes a very specific pointer bitcast pattern, and as
such is no longer relevant with opaque pointers.
  CONFLICT (content): Merge conflict in clang/include/clang/Basic/DiagnosticDriverKinds.td
  CONFLICT (content): Merge conflict in clang/lib/Driver/ToolChains/Clang.cpp
This reverts commit ab91e05.

This is because 760e7d0 has been reverted in 3fb5b18.
…ant data formatters (#69614)

This is relanding of llvm/llvm-project#69253.
`TestTemplatePackArgs.py` is passing now.

https://github.com/llvm/llvm-project/pull/68012/files added new data
formatters for LibStdC++ std::variant.

However, this formatter can crash if std::variant's index field has
invalid value (exceeds the number of template arguments).
This can happen if the current IP stops at a place std::variant is not
initialized yet.

This patch fixes the crash by ensuring the index is a valid value and
fix GetNthTemplateArgument() to make sure it is not crashing.

Co-authored-by: jeffreytan81 <jeffreytan@fb.com>
…ing from -Wconversion (#69767)

This PR adds `static_cast` to the value returned from `getLR()` in the
AIX unwinder to avoid warning in case `-Wconversion` is specified to
build in 32-bit mode.
The `-include "file"` option implicitly adds a leading #include
to the main source; however, there's no explicit #include, which
left -frewrite-includes emitting an unmatched #endif at the end
of the included text.

This corrects a bug in 4a16b51.
Translate `-fglobal-isel` to `-plugin-opt=-global-isel=1`.
…(#68453)

Fixes #68270

The function attribute analysis handles many instructions, like
addrspacecast, which do not themselves read or write memory but which
transform pointers into other values in the same alias set.

There are intrinsic functions, such as ptrmask or the AMDGPU-specific
make.buffer.rsrc, which also preserve membership in alias sets without
capturing. This commit adds the addrspacecast-like behavior to these
calls.
Some compilers allow the `$acc routine(<name>)` to be placed at the
program unit level. To be compatible, this patch enables the use of acc
routine at this level. These acc routine directives must have a name.
No need to change the insert point for reduction gather node, we can use
the ReductionRoot as insert point instead to avoid possible crashes.
…pop_heap (NFC) (#69672)

Immediately after the "while" loop in adjust, Heap.back() is
guaranteed to be the highest priority item for the current values of
Priorities.  std::push_back() at the end of adjust moves the highest
priority item to Heap.front(), but std::pop_heap() in pop moves it
right back to Heap.back().

This roundtrip is wasteful.  This patch removes the extraneous pair of
std::push_heap and std::pop_heap.  This patch cuts down about 45% of
calls to std::push_heap and std::pop_heap in InlineOrder.cpp while
building clang with FDO+ThinLTO.

Strictly speaking, removing the pair of calls may change the order in
which call sites with identical priorities are removed from the
priority queue, but we do not need to worry about that.

Since the functionality of adjust becomes more like a smart version of
pop_heap, this patch renames adjust to pop_heap_adjust.
…RF (#69990)

The "protected" was accidentally removed during refactoring of
SymbolFileDWARF. Reintroduce it and also make DWARFASTParser a friend
class since 040c4f4d98f3306e068521e3c218bdbc170f81f3 was merged and
won't build without it, as it dependeds on a method which was made
public by accident.
@jsji jsji temporarily deployed to WindowsCILock October 27, 2023 03:54 — with GitHub Actions Inactive
@srividya-sundaram
Copy link
Contributor

Seems reasonable to me. @srividya-sundaram, any thoughts?

Based on this commit: 82f75ed
-include a.h probing a.h.gch will now ignore a.h.gch if it is not
a clang pch file
or a directory containing any clang pch file.

Updating the header file to be a Clang generated PCH file seems correct.

@jsji jsji temporarily deployed to WindowsCILock October 27, 2023 04:56 — with GitHub Actions Inactive
New sphinx/myst emits more bad cross-reference targets.

Warnings like:

:'myst' cross-reference target not found: 'prog-scope-var-decl'
[myst.xref_missing]
@jsji jsji temporarily deployed to WindowsCILock October 27, 2023 18:05 — with GitHub Actions Inactive
@jsji jsji temporarily deployed to WindowsCILock October 27, 2023 19:29 — with GitHub Actions Inactive
@jsji
Copy link
Contributor Author

jsji commented Oct 27, 2023

This is ready for review.

@jsji jsji marked this pull request as ready for review October 27, 2023 19:52
@jsji jsji requested review from a team as code owners October 27, 2023 19:52
@bader
Copy link
Contributor

bader commented Oct 27, 2023

Everything except e8bb014 looks good to me.

@jsji
Copy link
Contributor Author

jsji commented Oct 27, 2023

Everything except e8bb014 looks good to me.

Thanks. Fixed in [SYCL][TEST] Fix variable length array warning/notes

@jsji jsji temporarily deployed to WindowsCILock October 27, 2023 21:11 — with GitHub Actions Inactive
@jsji jsji self-assigned this Oct 27, 2023
@jsji jsji temporarily deployed to WindowsCILock October 27, 2023 21:55 — with GitHub Actions Inactive
@jsji
Copy link
Contributor Author

jsji commented Oct 31, 2023

@bader @intel/llvm-gatekeepers Can we get this merged? Thanks.

@bader
Copy link
Contributor

bader commented Oct 31, 2023

/merge

@bb-sycl
Copy link
Contributor

bb-sycl commented Oct 31, 2023

Tue 31 Oct 2023 04:59:25 PM UTC --- Start to merge the commit into sycl branch. It will take several minutes.

@bb-sycl
Copy link
Contributor

bb-sycl commented Oct 31, 2023

Tue 31 Oct 2023 05:04:22 PM UTC --- Merge the branch in this PR to base automatically. Will close the PR later.

@bb-sycl bb-sycl merged commit 568473c into sycl Oct 31, 2023
12 of 14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
disable-lint Skip linter check step and proceed with build jobs
Projects
None yet
Development

Successfully merging this pull request may close these issues.