- Dec 21, 2023
-
-
Yeting Kuo authored
Fold (fp_to_int (frint X)) to (fcvt X) without rounding mode.
-
Matthias Springer authored
When operations are modified in-place, the rewriter must be notified. This commit fixes `mlir/test/Dialect/EmitC/transforms.mlir` when running with `MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS` enabled.
-
Timm Bäder authored
-
Brandon Wu authored
-
Valentin Clement authored
Re-land PR after being reverted because of buildbot failures. This patch adds representation for `device_type` clause information on compute construct (parallel, kernels, serial). The `device_type` clause on compute construct impacts clauses that appear after it. The values impacted by `device_type` are now tied with an attribute array that represent the device_type associated with them. `DeviceType::None` is used to represent the value produced by a clause before any `device_type`. The operands and the attribute information are parser/printed together. This is an example with `vector_length` clause. The first value (64) is not impacted by `device_type` so it will be represented with DeviceType::None. None is not printed. The second value (128) is tied with the `device_type(multicore)` clause. ``` !$acc parallel vector_length(64) device_type(multicore) vector_length(256) ``` ``` acc.parallel vector_length(%c64 : i32, %c128 : i32 [#acc.device_type<multicore>]) { } ``` When multiple values can be produced for a single clause like `num_gangs` and `wait`, an extra attribute describe the number of values belonging to each `device_type`. Values and attributes are parsed/printed together. ``` acc.parallel num_gangs({%c2 : i32, %c4 : i32}, {%c4 : i32} [#acc.device_type<nvidia>]) ``` While preparing this patch I noticed that the wait devnum is not part of the operations and is not lowered. It will be added in a follow up patch. -
Shengchen Kan authored
-
Shengchen Kan authored
This fixes the build error after 61b58123
-
Shengchen Kan authored
NDD (new data destination) instructions need to set NoCD8 and EVEX_4V. EVEX_4V already implies EVEX. If NoCD8 implied EVEX too, we would not be able to reuse the class.
-
Vitaly Buka authored
-
Chuanqi Xu authored
This patch tries to pack more bits into a value to reduce the size of .pcm files. Also, after we introduced BitsPackers, it may slightly better to adjust the way we use Abbrev. After this patch, the size of the BMI for std module reduce from 28.94MB to 28.1 MB. This was reverted due to it broke the build of lldb. The reason that we skip the serialization of a source location incorrectly. And this patch now fixes that.
-
kda authored
-
Konstantin Varlamov authored
-
Han-Chung Wang authored
-
Joseph Huber authored
Summary: These are keys into the AMDGPU target metadata. One of them had a typo which prevented it from being extracted.
-
Max Winkler authored
See https://github.com/llvm/llvm-project/pull/75711 for discussion. As a summary from the PR above, `<adxintrin.h>` includes adc intrinsics and adx intrinsics. To support MSVC STL we need to expose the adc intrinsics inside the currently proposed `<intrin0.h>` header. Move the processor agnostic adc intrinsics into a separate file that can be included from `<immintrin.h>` and the currently proposed `<intrin0.h>`.
-
Alexander Yermolovich authored
We would always allocate maximum amount for vector containing DWARFUnitInfo. In real usecases what ends up hapenning is we allocate a giant vector when processing one CU, or for thin-lto case multiple CUs. This lead to a lot of memory overhead, and 2x BOLT processing slowdown for at least one service built with monolithic DWARF. For binaries built with LTO with clang all of CUs that have cross references will share an abbrev table and will be processed in one batch. Rest of CUs are processesd in --cu-processing-batch-size size. Which defaults to 1. For theoretical cases where cross-cu references are present, but they do not share abbrev will increase the size of CloneUnitCtxMap as each CU is being processsed.
-
Valentin Clement authored
This reverts commit 8b885eb9.
-
Valentin Clement authored
This reverts commit 8fdc3b98.
-
NAKAMURA Takumi authored
-
Vitaly Buka authored
There is an assumption that we dont need to to mix sanitizer with symbolizer from different LLVM revison. If so we can detect it by `__sanitizer_symbolize_code` and assume that the rest is present.
-
Maksim Levental authored
-
Joseph Huber authored
Summary: We currently keep a cache of created ELF files from the relevant images. This shouldn't be necessary as the entire ELF interface is generally trivially constructable and extremely cheap. The cost of constructing one of these objects is simply a size check and writing a pointer to the underlying data. Given that, keeping a cache of these images should not be necessary overall.
-
michaelrj-google authored
Add LIBC_INLINE annotations to functions and fix variable cases within printf_core and scanf_core.
-
Jonas Paulsson authored
Atomic instructions (load / store/ atomicrwm / cmpxchg) are not really undefined behavior if they lack natural alignment. They will (with AtomicExpand pass enabled) be converted into libcalls. Update the language reference to reflect this.
-
Shilei Tian authored
This patch reduces the size of heap memory required by the test `malloc_parallel.c` and `malloc.c`. The original size is too large such that `malloc` returns `nullptr` on many threads, causing illegal memory access.
-
Ivan R. Ivanov authored
Using the LoopInfo from OMPInfoCache after the Attributor ran resulted in a crash due to it being in an invalid state. --------- Co-authored-by:Ivan Radanov Ivanov <ivanov2@llnl.gov>
-
Ethan Luis McDonough authored
This patch add three GTest unit tests that test plugin read and write operations. Tests can be compiled with `ninja -C runtimes/runtimes-bins LibomptUnitTests`.
-
Cyndy Ishida authored
Stubify broadly takes either tbd files or binary dylibs and turns them into tbd files. In future patches, stubify will also allow additional information to be embedded into the final TBD output too. Add Util APIs to TextAPI for common operations used by readtapi for now.
-
Mikhail Gudim authored
InstCombine canonicalizes `add` to `or` when possible, but this makes some optimizations applicable to `add` to be missed because they don't realize that the `or` is equivalent to `add`. In this patch we generalize `foldICmpBinOp` to handle such cases.
-
Peiming Liu authored
-
Valentin Clement authored
-
Valentin Clement (バレンタイン クレメン) authored
This patch adds representation for `device_type` clause information on compute construct (parallel, kernels, serial). The `device_type` clause on compute construct impacts clauses that appear after it. The values impacted by `device_type` are now tied with an attribute array that represent the device_type associated with them. `DeviceType::None` is used to represent the value produced by a clause before any `device_type`. The operands and the attribute information are parser/printed together. This is an example with `vector_length` clause. The first value (64) is not impacted by `device_type` so it will be represented with DeviceType::None. None is not printed. The second value (128) is tied with the `device_type(multicore)` clause. ``` !$acc parallel vector_length(64) device_type(multicore) vector_length(256) ``` ``` acc.parallel vector_length(%c64 : i32, %c128 : i32 [#acc.device_type<multicore>]) { } ``` Whe... -
Krzysztof Parzyszek authored
Fixes build break caused by 400c32cb.
-
Krzysztof Parzyszek authored
Use `llvm::enumerate` instead of iterating over a range and keeping a separate counter.
-
Justin Bogner authored
-
Stella Laurenzo authored
This fixes a longstanding bug in the `Context._CAPICreate` method whereby it was not taking ownership of the PyMlirContext wrapper when casting to a Python object. The result was minimally that all such contexts transferred in that way would leak. In addition, counter to the documentation for the `_CAPICreate` helper (see `mlir-c/Bindings/Python/Interop.h`) and the `forContext` / `forOperation` methods, we were silently upgrading any unknown context/operation pointer to steal-ownership semantics. This is dangerous and was causing some subtle bugs downstream where this facility is getting the most use. This patch corrects the semantics and will only do an ownership transfer for `_CAPICreate`, and it will further require that it is an ownership transfer (if already transferred, it was just silently succeeding). Removing the mis-aligned behavior made it clear where the downstream was doing the wrong thing. It also adds some `_testing_` functions to create unowned context and operation capsules so that this can be fully tested upstream, reworking the tests to verify the behavior. In some torture testing downstream, I was not able to trigger any memory corruption with the newly enforced semantics. When getting it wrong, a regular exception is raised.
-
Alex Beloi authored
See #73359 Types using `assemblyFormat` to define parsing don't need an additional handwritten parser. So we should remove the handwritten parsers where one provided by an `assemblyFormat` already exists to avoid confusion and de-syncing.
-
Slava Zakharin authored
This patch enables more numeric (mod, sum, matmul, etc.) APIs, and some others. I added new macros to disable warnings about using C++ STD methods like operators of std::complex, which do not have __device__ attribute. This may probably result in unresolved references, if the header files implementation relies on libstdc++. I will need to follow up on this.
-
Abhina Sree authored
This applies the same change made in google benchmark to define HOST_NAME_MAX for z/OS https://github.com/google/benchmark/commit/7b52bf7346dead5ef4f29d7f98d2a26d6194252f
-
Sam Clegg authored
The current (experimental) spec for WebAssembly shared libraries does not include a full symbol table like the object format. This change extracts symbol information from the normal wasm exports. This is the first step in having the linker report undefined symbols when linking with shared libraries. The current behaviour is to ignore all undefined symbols when linking with `-pie` or `-shared`. See https://github.com/emscripten-core/emscripten/issues/18198
-