-
Notifications
You must be signed in to change notification settings - Fork 736
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
Conversation
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().
This resolved #69112.
…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
…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.
… (#68878) Fixes #68543, #42496
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.
Based on this commit: 82f75ed Updating the header file to be a Clang generated PCH file seems correct. |
New sphinx/myst emits more bad cross-reference targets. Warnings like: :'myst' cross-reference target not found: 'prog-scope-var-decl' [myst.xref_missing]
This is ready for review.
|
Everything except e8bb014 looks good to me. |
This also reverts commit e8bb014.
Thanks. Fixed in [SYCL][TEST] Fix variable length array warning/notes |
@bader @intel/llvm-gatekeepers Can we get this merged? Thanks. |
/merge |
Tue 31 Oct 2023 04:59:25 PM UTC --- Start to merge the commit into sycl branch. It will take several minutes. |
Tue 31 Oct 2023 05:04:22 PM UTC --- Merge the branch in this PR to base automatically. Will close the PR later. |
LLVM: llvm/llvm-project@2e2011d
SPIRV-LLVM-Translator: KhronosGroup/SPIRV-LLVM-Translator@d009cd4