- Mar 27, 2024
-
-
Vitaly Buka authored
Created using spr 1.3.4 [skip ci]
-
Vitaly Buka authored
-
Yeting Kuo authored
For targets with Zcb, this patch makes llvm generate more compress c.lb/lbu/lh/lhu/sb/sh instructions.
-
Carlos Alberto Enciso authored
As part of the WebAssembly support work https://github.com/llvm/llvm-project/pull/85566 The README.txt is a bit odd since it only lists issues and problems without talking about what works. It’s also hard to read on the GitHub web view. - Convert to Markdown and linking to the command docs https://llvm.org/docs/CommandGuide/llvm-debuginfo-analyzer - Rename some left 'elf reader' to 'DWARF reader'.
-
Christian Sigg authored
Move `GPUOpsLowering.cpp` from `//mlir:GPUCommonTransforms` to `//mlir:GPUToGPURuntimeTransforms` to match the CMake setup. Ideally, header files should be used by only one target, but this is hard because CMake is less strict with headers (no layering check). But even with bazel, headers should only be exported once in the `hdrs` attribute. Other targets may use them in the `srcs` attribute to avoid circular dependencies.
-
ShihPo Hung authored
This reverts commit 7545c635 as it's failing on the Linux bots.
-
Craig Topper authored
This an alternative to #84935 to fix the miscompile, but not be optimal. The immediate for cm.push/pop must be a multiple of 16. For RVE, it might not be. It's not easy to increase the stack size without messing up cfa directives and maybe other things. This patch rounds the stack size down to a multiple of 16 before clamping it to 48. This causes an extra addi to be emitted to handle the remainder. Once this commited, I can commit #84989 to add verification for these instructions being generated with valid offsets.
-
Craig Topper authored
From the spec | Instruction | Register | Cannot Overlap | | ----------- | -------- | -------------- | | vaes*.vs | vs2 | vd | | vsm4r.vs | vs2 | vd | | vsha2c[hl] | vs1, vs2 | vd | | vsha2ms | vs1, vs2 | vd | | sm3me | vs2 | vd | | vsm3c | vs2 | vd |
-
Shilei Tian authored
-
Shilei Tian authored
-
Jeremy Day authored
Fixes https://github.com/llvm/llvm-project/issues/83046 There is a race condition when calling `GetFileAttributesW` that can cause it to return `ERROR_ACCESS_DENIED` on a path which exists, which is unexpected for callers using this function to check for file existence by passing `AccessMode::Exist`. This was manifesting as a compiler crash on Windows downstream in the Swift compiler when using the `-index-store-path` flag (more information in https://github.com/apple/llvm-project/issues/8224). I looked for alternate APIs to avoid bringing in `shlwapi.h`, but didn't see any good candidates. I'm not tied at all to this solution, any feedback and alternative approaches are more than welcome.
-
Craig Topper authored
This allows the asm printer to print the stack spill/reload messages.
-
Teresa Johnson authored
Restructure the handling of edges that become empty during the cloning process. Instead of removing them as they become empty (no context ids and alloc type), do this once after all cloning is complete. This has no effect on the cloning result, but prepares for a follow on change that does improve the cloning. The structural change here reduces the diffs for the follow on change, which would be much more difficult with the previous handling.
-
Shih-Po Hung authored
Use the destination data type to measure the LMUL size for latency/throughput cost
-
Oleksandr "Alex" Zinenko authored
Transform op trait verification calls `getEffects`, and since trait verification runs before op verification, this call cannot assume the op to be valid. However, the operand getters now return a `TypedValue` that unconditionally casts the value to the expected type, leading to an assertion failure. Use the untyped mechanism instead. Fixes #84701.
-
Matthias Springer authored
This commit adds a helper function that dumps the constraint set and the mapping of columns to values/dims. For debugging only. Example output: ``` ========== Columns: (column dim value) 0 1 linalg.fill (result 0) 1 1 tensor.extract_slice (result 0) 2 n/a affine.min (result 0) 3 n/a scf.for (bbarg 0) 4 n/a func.func (bbarg 2) Constraint set: Domain: 0, Range: 1, Symbols: 4, Locals: 0 6 constraints (None None None None None const) 1 -1 0 0 0 0 = 0 0 1 -1 0 0 0 = 0 0 0 -1 -1 1 0 >= 0 0 0 -1 0 0 4 >= 0 0 0 0 1 0 0 >= 0 0 0 0 -1 1 -1 >= 0 ========== ```
-
Enna1 authored
This patch replaces the `SANITIZER_WORDSIZE / 2` with `sizeof(CompactPtrT) * 8`, replaces hardcoded `4` with `kCompactPtrScale` in assertion.
-
Changpeng Fang authored
We should not manually get the types of the loading data. Instead, we can get the types from the intrinsics directly.
-
Michael Maitland authored
These cases in particular are done as a precommit to support legalization, regbank selection, and instruction selection for extends, splat vectors, and integer compares in #85938.
-
Pavel Kosov authored
…i_check This causes __cfi_check, just as __cfi_check_fail, to get the proper target-specific attributes, in particular uwtable for unwind table generation. Previously, nounwind attribute could be inferred for __cfi_check, which caused it to lose its unwind table even with -funwind-table option. ~~ Huawei RRI, OS Lab Co-authored-by:Nikolai Kholiavin <kholiavin.nikolai@huawei-partners.com>
-
Michael Maitland authored
G_VSCALE should be lowered using VLENB. If the type is not sXLen it should be lowered using a G_VSCALE on the narrow type and a G_MUL. regbank select and instruction select are straightforward so we really only need to add tests to show it works.
-
Aart Bik authored
This fixes an "infinite" loop bug, where the incoming IR was repeatedly rewritten while adding identical cast operations. The test for compatible types should include the notion of an encoding. If it differs, then a naive fusion into the consumer is invalid.
-
SevenIsSeven authored
This commit(https://github.com/llvm/llvm-project/pull/84738 ) introduced following compile warning then treated-as-error in MSVC build. >>>"'^': unsafe mix of type 'unsigned int' and type 'bool' in operation" --------- Co-authored-by:
Seven <Seven.Li@amd.com>
-
Vadim Paretsky authored
This PR adds loop collapse tests ported from MSVC. --------- Co-authored-by:Vadim Paretsky <b-vadipa@microsoft.com>
-
Alex MacLean authored
While a stack size large enough to cause this truncation to be a problem would certainly cause other issues and not produce a valid program anyway, this cast is triggering our Coverity static analysis. Removing it seems cleaner.
-
Craig Topper authored
There were 3 temporaries that just renamed the 3 well name arguments to the function to Tmp1-3. Looks like this was done when the code was extracted from elsewhere into a separate function 15 years ago.
-
Xiangyang (Mark) Guo authored
getCost() expects that isVariable() is true. https://github.com/llvm/llvm-project/blob/main/llvm/include/llvm/Analysis/InlineCost.h#L146 Co-authored-by:
helloguo <helloguo@meta.com>
-
Jon Chesterfield authored
compiler-rt may depend on libc (memset etc). Likewise a libc built by clang may depend on compiler-rt builtins. This circular dependency doesn't matter much once they're both compiled. The easy compilation order to build both from source is: 1. install libc headers somewhere 2. build compiler-rt builtins against those headers 3. build libc against compiler-rt builtins This patch relaxes the cmake sanity check to pass without requiring a libc library. That allows the above sequence to work. Otherwise one needs to build a static libc, then use that to pass the compiler-rt cmake check, then build a normal libc.
-
Nick Desaulniers authored
The arm32 buildbot reports an error because UInt::operator bool() is explicit, thus an explicit cast is necessary. Link: #85940
-
Christopher Ferris authored
Do not abort if a vector cannot increase its own capacity. In that case, push_back calls silently fail. Modify the ScopedString implementation so that it no longer requires two passes to do the format. Move the helper functions to be private member functions so that they can use push_back directly. This allows the capacity to be increased under the hood and/or silently discards data if the capacity is exceeded and cannot be increased. Add new tests for the Vector and ScopedString for capacity increase failures. Doing this so that if a map call fails, and we are attempting to write an error string, we can still get some of the message dumped. This also avoids crashing in Scudo code, and makes the caller handle any failures.
-
Joseph Huber authored
Summary: This needs to go after `extern "C"`.
-
Matthias Gehre authored
As discussed in one of the previous TOSA community meetings, we would like to allow for more integer types in the TOSA dialect to enable more use cases. For strict standards conformance, the TosaValidation pass can be used. Follow up PRs will extend conversions from TOSA where needed.
-
Alina Sbirlea authored
-
Piotr Zegar authored
Sort entrys in release notes.
-
Fangrui Song authored
In glibc versions before 2.33. `libc_nonshared.a` defines `__fxstat/__fxstat64` but there is no `fstat/fstat64`. glibc 2.33 added `fstat/fstat64` and obsoleted `__fxstat/__fxstat64`. Ports added after 2.33 do not provide `__fxstat/__fxstat64`, so our `fstat/fstat64` interceptors using `__fxstat/__fxstat64` interceptors would lead to runtime failures on such ports (LoongArch and certain RISC-V ports). Similar to https://reviews.llvm.org/D118423, refine the conditions that we define fstat{,64} interceptors. `fstat` is supported by musl/*BSD while `fstat64` is glibc only.
-
Florian Mayer authored
This is so we can use a different slot for stack MTE.
-
Florian Mayer authored
-
Craig Topper authored
[RISCV] Check that the stack adjust immediate for cm.push/pop* has the correct sign and is divisible by 16. (#85295) To do this I've added a new AsmOperand for cm.push to expect a negative value. We also use that to customize the print function so that we don't need to detect cm.push opcode to add the negative sign. I've renamed some places that used Spimm to be StackAdj since that's what is being parsed. I'm still not about where we should use Spimm or StackAdj. I've removed the printSpimm helper function which in one usage printed the sp[5:4]<<4 value and the other usage printed the full stack adjustment. There wasn't anything interesting about how it was printed it just passed the value to the raw_stream. If there was something special needed, it's unclear whether it would be the same for the two different usages so I inlined it. One open question is whether we need to support stack adjustments expressed as an expression rather than a literal integer.
-
OverMighty authored
Fixes #86549.
-
Vinayak Dev authored
Resolves #86547 Replace occurrences of the macro `LIBC_HAS_ATTRIBUTE` with `__has_attribute`.
-