forked from llvm/llvm-project
-
Notifications
You must be signed in to change notification settings - Fork 2
[pull] main from llvm:main #5641
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
Open
pull
wants to merge
832
commits into
Ericsson:main
Choose a base branch
from
llvm:main
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
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
#162297) This code was duplicated in multiple places and a subsequent patch will need to do it again.
This also allowed deleting unreachable code.
…161752) The attribute needs to be preserved for rewriter scenarios. Two places were updated to use the `ResourceBindingAttrs` helper struct to make sure the `HLSLVkBindingAttr` is ignored when the target is DirectX.
…SiFive7 (#162386) This is helpful on validating the non-throttled vector FP64 performance, compared to the throttled model of sifive-x390.
Fixing failures due to #161463
…L for some target triples (#159796) The problem with the current `target={{.*}}-darwin{{.*}}` XFAIL condition (changed in #130144) is that the Swift build script uses Apple platform names like 'macosx', not 'darwin', for the LLVM target triple, e.g. `arm64-apple-macosx13.0`. These tests appear to have been originally XFAILed because the default format on macOS (darwin) adds newlines as padding to align members. See: https://github.com/llvm/llvm-project/blob/ee8394d9469a2946ffe2e7d192c593ecf3f93098/llvm/lib/Object/ArchiveWriter.cpp#L897-L904 Use `--format=gnu` to cope with the differences in the output and reenable the tests. rdar://157213658
…d RL. NFC (#162321) Instruction names should match the mnemomic with '.' replaced by '_'. The instruction mnemonics use ".aqrl" not ".aq.rl".
Update doc repository link.
#160025) In linux kernel commit [1], we have a bpf selftest failure caused by llvm. In this particular case, the BPFCheckAndAdjustIR pass has a function insertASpaceCasts() which inserts proper addrspacecast insn at proper IR places. It does not handle __builtin_memset() and hance caused selftest failure. Add support in insertASpaceCasts() to handle __builtin_(memset,memcpy,memmove,memset_inline,memcpy_inline}() properly and this can fix the issue in [1] as well. [1] https://lore.kernel.org/all/[email protected]/
Refactor MIRVocabulary to improve opcode lookup and add Section enum for better organization. This is useful for embedder lookups (next patches) (Tracking issue - #141817)
…162163) This code is activated on all INTRINSIC_WO_CHAIN but only handles a selection. However it was trying to read the arguments before checking which intrinsic it was handling. This fails for intrinsics that have no arguments.
…e into Section (#162390) Co-authored-by: Craig Topper <[email protected]>
This test, with a corefile created via yaml2macho-core plus an ObjectFileJSON binary with symbol addresses and ranges, was failing on some machines/CI because the wrong ABI was being picked. The bytes of the functions were not included in the yaml or .json binary. The unwind falls back to using the ABI plugin default unwind plans. We have two armv7 ABIs - the Darwin ABI that always uses r7 as the frame pointer, and the AAPCS ABI which uses r11 code. In reality, armv7 code uses r11 in arm mode, r7 in thumb code. But the ABI ArchDefaultUnwindPlan doesn't have any access to the Target's ArchSpec or Process register state, to determine the correct processor state (arm or thumb). And in fact, on Cortex-M targets, the instructions are always thumb, so the arch default unwind plan (hardcoded r11) is always wrong. The corefile doesn't specify a vendor/os, only a cpu. The object file json specifies the armv7m-apple-* triple, which will select the correct ABI plugin, and the test runs. In some cases, it looks like the Process ABI was fetched after opening the corefile, but before the binary.json was loaded and corrected the Target's ArchSpec. And we never re-evaluate the ABI once it is set, in a Process. When we picked the AAPCS armv7 ABI, we would try to use r11 as frame pointer, and the unwind would stop after one stack frame. I'm stepping around this problem by (1) adding the register bytes of the prologues of every test function in the backtrace, and (2) shortening the function ranges (in binary.json) to specify that the functions are all just long enough for the prologue where execution is stopped. The instruction emulation plugin will fail if it can't get all of the bytes from the function instructions, so I hacked the function sizes in the .json to cover the prologue plus one and changed the addresses in the backtrace to fit within those ranges.
This way we can roll out new breaking features as opt-int. E.g. "#!special-case-list-v3" will enabled something new. Nothing to enabled yet, but with pinpointed default it's an option. Follow up #162350.
…64 G_SEXT/G_ZEXT. (#161971) Because GISel doesn't distinquish integer and FP types, we need to allow s16/s32 as legal inputs/outputs of G_SEXT and G_ZEXT. This requires a extra isel patterns to support the cross product of these types that we don't need for SelectionDAG. We also needed to add i16/i32 to the GPR register class which prevents some type inferencing in tablegen and increases the size of the RISCVGenDAGISel.inc by 2K. This patch proposes to do manual selection so we can remove these patterns and eventually remove the types from the register class.
This was causing bot failures if you build with -Werror -Wdocumentation. Fix the docs to reflect the new headers.
…162397) There are some users who rely on more than line number. It would be easy to move some logic from users side here with extracted methods.
#162405) The DirectCaller utility allows "direct" calls (with arguments serialized into, and then immediately back out of a WrapperFunctionBuffer) to wrapper functions. It was introduced for the SPSWrapperFunction tests, but will be useful for testing WrapperFunction interfaces for various orc-rt APIs too, so this commit hoists it somewhere where it can be reused.
Since the `emitc.expression` was recently updated, the documentation has been changed
The field has been moved to the base class, but I forgot to actually delete it in the derived class.
We don't care how long any of this took. Due to OS scheduling, one or more parts of the test may be delayed for any amount of time.
This change splits cta_group::1 and cta_group::2 into two separate functions because they are not supported inside a single function. ptxas from 13.0 release onwards emits an error message for this case.
Use fast-math flag `afn` for `fmul` and remove UseUnsafeMath feature, users now should use fast-math flags only, `unsafe-fp-math` attribute support will be removed in future. Hopefully `afn` is the right option This is the Hexagon part.
lifetime intrinsics are now restricted to alloca arguments, so the scenario that this is testing for cannot occur anymore. The lifetime intrinsics in this test actually get completely removed by the IR auto-upgrade.
Currently, `size_t` and `__libcpp_is_constant_evaluated` are obtained by transitive inclusion in `<__algorithm/find.h>` when `<cwchar>` is not included. This broke module build when `_LIBCPP_HAS_WIDE_CHARACTERS` is `1` and caused CI failure. We should explicitly include the corresponding internal headers.
The dependency analysis in MachinePipeliner checks dependencies for every pair of store instructions in the target basic block. This means the time complexity of the analysis is `O(N^2)`, where `N` is the number of store instructions. Therefore, compilation time can become significantly long when there are too many store instructions. To mitigate it, this patch introduces logic to count the number of store instructions at the beginning of the pipeliner and bail out if it exceeds the threshold. The default value if the threshold should be large enough. Thus, in most practical cases where the pipeliner is beneficial, this patch should not cause any performance regression. Related issue: #150262
This test failed on a buildbot where the path happened to contain "ld2": /home/b/sanitizer-aarch64-linux-bootstrap-hwasan/build/llvm_build2_hwasan/test/tools/llvm-exegesis/AArch64/Output/no-aliasing-ld-str.s.tmp.obj: file format elf64-littleaarch64 To fix this, make lit consume a line past this one and do the check-not after that point.
…ager.add` (#162594) Previously, each time we called `PassManager.add(python_pass_callable)`, a new `TypeID` allocator was created and never released afterward. This approach could potentially lead to some issues. In this PR, we introduce a global `TypeIDAllocator` that is shared across all `add` calls to allocate IDs.
Co-authored-by: Gabor Horvath <[email protected]>
`structured-data ommand` -> `structured-data command`
…62096) Before this patch we had: > clang -cc1 source.c -o bitcode.bc > llvm-link -o a.out bitcode.bc > llvm-spirv -o a.out a.out Now we have: > clang -cc1 source.c -o bitcode.bc > llvm-link -o a-linked.bc bitcode.bc > llvm-spirv -o a.out a-linked.bc Co-authored-by: Manuel Carrasco <[email protected]>
…hon (#162591) `PassManager::enableStatistics` seems currently missing in both C API and Python bindings. So here we added them in this PR, which includes the `PassDisplayMode` enum type and the `EnableStatistics` method.
This reverts commit aeed686. The test is no longer causing llvm-objdump to crash, but we're getting different errors from llvm-exegis, like: ``` FMOVWSr: Not all operands were initialized by the snippet generator for UMOVvi32 opcode. FMOVWSr: Not all operands were initialized by the snippet generator for FCVTZUSWDri opcode. ```
…egion (#162306) Variable references inside OpenACC compute and loop region were currently always lowered to usages of the same SSA values than in the host thread, even for variables that appear in data clauses and for which acc data operations are created. This makes it a non-trivial task to identify implicit data usages vs usage of data appearing in clauses because the SSA addresses used in the region may have a non-trivial SSA relationship with the SSA addresses used as inputs of the data operations, especially after CSE runs that may merge component or array element addressing operations with similar addressing on the host thread (fir.coordinate/hlfir.designate). This patch updates OpenACC lowering to remap the Symbol that appear in data clauses to the related acc data operation result for the scope of the compute or loop region. To allow FIR passes to reason about these addresses, a new hlfir.declare operation is created with the acc data operation result. This gives access to the shape, contiguity, attributes, and dummy argument relationships inside the region without having FIR extended to understand the data operations.
Reflecting the [Coding Standards](https://llvm.org/docs/CodingStandards.html), the following changes were made to reflect this guideline. ``` Variable names should be nouns (as they represent state). The name should be camel case, and start with an upper-case letter (e.g. Leader or Boats). ``` The first letter in the variable names are changed to upper-case and reflect being camel case.
#157928) There is a commonly used library that interposes the write call, and is interposed itself. When running with `TSAN_OPTIONS=verbosity=(1|2)`, this leads to a thread locking itself, resulting in the program hanging. This patch adds a new flag `lock_during_write` to TSan (on Apple platforms only) that, when set, allows interceptors to be bypassed during calls to write. The flag can be inherited by children, or not, depending on the value. rdar://157565672
Handle ptrtoaddr the same way as ptrtoint. This code is already working on the index size (= address size) of the pointer only.
In the libc++ test suite, we consistently declare main() functions with full parameters and explicitly return from the function. This helps code that compiles the tests with -ffreestanding, where main() is not a special function (with an implicit return and special mangling). This patch fixes a few stray declarations, including in libunwind and libc++abi.
This was used for the old interop code. It's dead code after #143491
When creating function pointers, make sure the pointer is in the program address space. Also fix a spot where I forgot to set `setDefaultTargetAS` and one spot where we didn't use the default AS for a pointer. --------- Signed-off-by: Sarnie, Nick <[email protected]>
This is a find from static analysis tool complaining about potential constant overflow for `Index`.
Also regenerate the test in current format.
Turns out there already was a test for the non-inbounds variant, so remove the duplicate. Rename the tests to be more meaningful. Drop irrelevant target triple.
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )