forked from llvm/llvm-project
-
Notifications
You must be signed in to change notification settings - Fork 2
Update LLVM 19.1.0 and organization structure course #26
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
Closed
Kuznetsov-Artyom
wants to merge
10,000
commits into
NN-complr-tech:main
from
Kuznetsov-Artyom-Education:main
Closed
Update LLVM 19.1.0 and organization structure course #26
Kuznetsov-Artyom
wants to merge
10,000
commits into
NN-complr-tech:main
from
Kuznetsov-Artyom-Education:main
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…lvm#120686) `default.nonTbpDefinedIoTable` is a special global defined for IO that doesn't follow the mangling scheme and is then not handle correctly in the `CompilerGeneratedNames` pass. Update how it is generated with doGenerated so it can be handle without special handling. Also do not generate comdat in gpu module as the current code is not handling nested module correctly.
Note that PointerUnion::{is,get} have been soft deprecated in PointerUnion.h: // FIXME: Replace the uses of is(), get() and dyn_cast() with // isa<T>, cast<T> and the llvm::dyn_cast<T> I'm not touching PointerUnion::dyn_cast for now because it's a bit complicated; we could blindly migrate it to dyn_cast_if_present, but we should probably use dyn_cast when the operand is known to be non-null.
In the previous commit 4797437, I used `llvm::isInt<NumStmtBits>(StmtClass::LAST##Class)` to test if `StmtClass` is strictly bounded by the an unsigned integer of 'NumStmtBits'. That is incorrect as `llvm::isInt` tests for signed integers. This commit fixes it. (rdar://141555357)
operator* for this iterator returns Use& so I think the value_type should be Use not Use*. Noticed while comparing with SDNode::use_iterator.
…reaterThanOrEqual. (llvm#120649) SEWGreaterThanOrEqualAndLessThan64 is a stricter constraint so it should have a higher value than SEWGreaterThanOrEqual. Found by our random test generator.
…lvm#120633) Optionally unconditionally hint allocations as cold or not cold during the cloning step if the percentage of bytes allocated is at least that of the given threshold. This is similar to PR120301 which supports this during matching, but enables the same behavior during cloning, to reduce the false positives that can be addressed by cloning at the cost of carrying the additional size metadata/summary.
Check if (add r, imm) can be optimized to (ADDI (ADDI r, imm0), imm1), in which imm = imm0 + imml and both imm0 and imm1 are simm12. We make imm0 as large as possible and imm1 as small as possible so that we might be able to use c.addi for the small immediate.
This patch introduces support for the Hexagon V75 architecture. It includes instruction formats, definitions, encodings, scheduling classes, and builtins/intrinsics.
Upstream ClangIR support for `void` type, floating-point types, pointer types, and function types. Floating-point support is missing the IBM double-double format, because that hasn't been implemented in the incubator project yet. Pointer types do not yet support address spaces. Function type support includes only the return type and the parameter types. The many other properties and attributes of function types will be upstreamed later.
This PR adds NVVM intrinsics and NVPTX codegen for: - [wgmma.fence.sync.aligned](https://docs.nvidia.com/cuda/parallel-thread-execution/#asynchronous-warpgroup-level-matrix-instructions-wgmma-fence) - [wgmma.commit_group.sync.aligned](https://docs.nvidia.com/cuda/parallel-thread-execution/#asynchronous-warpgroup-level-matrix-instructions-wgmma-commit-group) - [wgmma.wait_group.sync.aligned](https://docs.nvidia.com/cuda/parallel-thread-execution/#asynchronous-warpgroup-level-matrix-instructions-wgmma-wait-group)
First part of tt-ascalon-d8 scheduling model, only containing scalar ops. Scheduling for vector instructions will be added in a follow-up patch. --------- Co-authored-by: Anton Blanchard <[email protected]> Co-authored-by: Pengcheng Wang <[email protected]>
…ding new global strings. (llvm#118729)" (llvm#119616) This reverts commit cfa582e.
That benchmark isn't really useful, since it doesn't benchmark anything from libc++ (besides `operator new`). The implementation of the benchmark also has serious problems like the fact that it allocates an unknown amount of memory without deallocating it.
…urce A follow-up change to PR llvm#120341 & llvm#120643. Address @nikic's concern: llvm#120341 (comment)
…118185) When adding a new predicate to a union predicate, some of the existing predicates may be implied by the new predicate. Remove any existing predicates that are already implied by the new predicate. Depends on llvm#118184 to show the main benefit. PR: llvm#118185
Adds `T Load(int)` method on `StructuredBuffer`, `RWStructuredBuffer` and `RasterizerOrderedStructuredBuffer`. Uses the existing `addLoadMethods` in HLSLExternalSemalSource so most of this change is just tests. Fixes llvm#112977
Buildbot breakage: home/b/sanitizer-aarch64-linux/build/llvm-project/compiler-rt/lib/rtsan/tests/rtsan_test_interceptors_posix.cpp:1090:19: error: missing field 'tv_nsec' initializer [-Werror,-Wmissing-field-initializers] 1090 | timespec ts = {0}; introduced by https://github.com/llvm/llvm-project/pull/120366/files
Building on top of previous work that exposed expression diagnostics via SBCommandReturnObject, this patch generalizes the support to expose any SBError as machine-readable structured data. One use-case of this is to allow IDEs to better visualize expression diagnostics. rdar://139997604
Test needed updating due to changes on main since branch was tested.
Test needed updating due to changes on main since branch was tested.
…boxing (llvm#120795) Reboxing might create a new in memory descriptor. If this one was allocate with managed memory, allocate the new one in managed memory as well.
Missing `r` in the function name.
…lvm#120644) Exposing `-fdiagnostic-color=` to clang-cl and clang-dxc. `-fcolor-diagnostics` and `-fno-color-diagnostics` are already allowed in both of these and `-fdiagnostics-color=` allows one additional value, `auto`. I've added the tests for clang-cl to `cl-options.c` as per the comments in the issue linked below. I couldn't finding a suitable existing file to add the clang-dxc tests to so I've created a new one. Resolves llvm#119184
…s with appropriate annotations (llvm#110523) This is helpful when multiple functions operate on the same capabilities, but we still want to use scoped lockable types for readability and exception safety. - Introduce support for thread safety annotations on function parameters marked with the 'scoped_lockable' attribute. - Add semantic checks for annotated function parameters, ensuring correct usage. - Enhance the analysis to recognize and handle parameters annotated for thread safety, extending the scope of analysis to track these across function boundries. - Verify that the underlying mutexes of function arguments match the expectations set by the annotations. Limitation: This does not work when the attribute arguments are class members, because attributes on function parameters are parsed differently from attributes on functions.
Fix the logic used to run unit tests to account for `llvm_gtest` targets being installed, since 91b3ca3. This involves removing a rule that would cause a duplicate `llvm_gtest` target being created, and updates the method for determining whether unittests can be run to checking whether the target is present, rather than the source directory (that is no longer actually necessary).
…lds (llvm#120911) Since LLVM tools are installed system-wide, adding dependencies on them is unnecessary. Furthermore, it is problematic for multilib builds, where the tools are only built once, for the native ABI, and therefore are not listed in CMake files for non-native ABIs.
There is no shared version RTUbsan_cxx. Fix android after llvm#121006.
Resolves llvm#114703 I think it's the best practice that each macro has it's own `ifndef` check and this way the build issue is resolved for me. I also find the names of these macro a bit too generic - an easy recipe for conflicts. In my case, the error was likely caused by something else defining `CHECK` but not `CHECK_MSG`, so likely these `CHECK` and `CHECK_MSG` weren't actually working at all because the result of `ifndef` is always false. As a definitive fix, perhaps it makes sense to rename them to something more specific, e.g. `FLANG_CHECK` and `FLANG_CHECK_MSG`.
Remove extra command line arguments while here.
This commit fixes some but not all memory leaks in Flang. There are still 91 tests that fail with ASAN. - Use `mlir::OwningOpRef` instead of `std::unique_ptr`. The latter does not free allocations of nested blocks. - Pass `ModuleOp` as value instead of reference. - Add few missing deallocations in test cases and other places.
This PR implements support for generic Xtensa target in CLang. Co-authored-by: Andrei Safronov <[email protected]>
…values (llvm#119774) After llvm#96127 landed, mshockwave reported that the pass was no longer threading SPEC2006/perlbench. After 96127 we started bailing out in `getStateDefMap` and rejecting the transformation because one of the unpredictable values was coming from inside the loop. There was no fundamental change in that function except that we started calling `Loop->contains(IncomingBB)` instead of `LoopBBs.count(IncomingBB)`. After some analysis I came to the conclusion that even before 96127 we would reject the transformation if we provided large enough limits on the path traversal (large enough so that LoopBBs contained blocks corresponding to that unpredictable value). In this patch I changed `getStateDefMap` to not terminate early on finding an unpredictable value, this is because `getPathsFromStateDefMap`, later, actually has checks to ensure that the final list of paths only have predictable values. As a result we can now partially thread functions like `negative6` in the tests that have some predictable paths. This patch does not really have any compile-time impact on the test suite without `-dfa-early-exit-heuristic=false` (early exit is enabled by default). Change-Id: Ie1633b370ed4a0eda8dea52650b40f6f66ef49a3
Close llvm#121066 Now we will diagnose that the import statement lacks a semicolon as expected. Note that the original "not found" diagnose message remains. I meant to remove that, but the test shows it might be more complex process (other unexpected diagnose shows up). Given the importance of the issue, I chose to not dig deeper.
…120988) Support the lowering of vectorized FMINIMUM and FMAXIMUM to vminph and vmaxph on types v8f16, v16f16 when AVX512FP, AVX512VL features are present, and on type v32f16 when AVX512FP is present.
…op to branches (llvm#119728) Loop latches often have a loop-carried dependency, and if they have several SelectLike instructions in one select group, it is usually profitable to convert it to branches rather than keep selects.
…20576) A signed min-max clamp is the sequence of smin and smax intrinsics, which constrain a signed value into the range: smin <= value <= smax. The patch improves the calculation of KnownBits for a value subjected to the signed clamping.
These code are no longer needed because we've modeled tuple type using target extension type rather than structure of scalable vectors.
)" (llvm#121113) This reverts commit dd9c5c1.
…utable lambda (llvm#120849) For structured bindings, a call to getCapturedDeclRefType(...) was missing. This PR fixes that behavior and adds the related diagnostics too. This fixes llvm#95081.
Fix dissambler test for Code Density feature.
…on (llvm#94990) As discussed in llvm#94468, this causes switch lookup table entries which are unreachable to be poison instead of filling them with a value from one of the reachable cases. --------- Co-authored-by: DianQK <[email protected]>
…oot (llvm#121094) Sub-instruction can have a def with the same name as a def in a top-level instruction. Previously this could result in both defs copied to the instruction being built.
Split importExplicitUseRenderer into several smaller functions and add a bunch of TODOs and FIXMEs. This is an NFCI change to simplify review of future functional changes. Pull Request: llvm#121071
Impl example for ClangAST lab
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.