- Jun 01, 2024
-
-
David Stone authored
-
Nico Weber authored
-
RoseZhang03 authored
- In /libc/src/__support/ OSUtil, changed quick_exit to just exit, and put in namespace LIBC_NAMESPACE::internal. - In /libc/src/stdlib added quick_exit - Added test files for quick_exit
-
Paul T Robinson authored
Reverts llvm/llvm-project#93960 The change to offloading-interoperability.c broke many bots.
-
Paul T Robinson authored
-
Konstantin Zhuravlyov authored
-
Nikita Popov authored
This test currently has an explicit regex for characters that are supposedly valid inside a directory name -- however, it does not actually cover all necessary characters. For example, this test fails if the path contains a tilde. Instead, replace this with a wildcard.
-
Fangrui Song authored
Some linker scripts don't converge. https://reviews.llvm.org/D66279 ("[ELF] Make LinkerScript::assignAddresses iterative") detected convergence of symbol assignments. This patch detects convergence of output section addresses. While input sections might also have convergence issues, they are less common as expressions that could cause convergence issues typically involve output sections and symbol assignments. GNU ld has an error `non constant or forward reference address expression for section` that correctly rejects ``` SECTIONS { .text ADDR(.data)+0x1000 : { *(.text) } .data : { *(.data) } } ``` but not the following variant: ``` SECTIONS { .text foo : { *(.text) } .data : { *(.data) } foo = ADDR(.data)+0x1000; } ``` Our approach consistently rejects both cases. Link: https://discourse.llvm.org/t/lld-and-layout-convergence/79232 Pull Request: https://github.com/llvm/llvm-project/pull/93888
-
- May 31, 2024
-
-
Victor Perez authored
Define pass for GPU to LLVM conversion for SPIR-V backend tool ingest. Supported operations: - `gpu.block_id` - `gpu.global_id` - `gpu.block_dim` - `gpu.thread_id` - `gpu.grid_dim` - `gpu.barrier` - `gpu.shuffle` --------- Signed-off-by:Victor Perez <victor.perez@codeplay.com>
-
erichkeane authored
Seemingly I forgot to implement the appertainment checks when doing the original device_type implementation, so we fell through to the 'not implemented' section of the diagnostics. This patch corrects the appertainment, so that we disallow it correctly.
-
Ivan Kosarev authored
Removes ~100K instances of SIAssemblerPredicate and VIAssemblerPredicate fields from instruction records.
-
Vladislav Dzhidzhoev authored
This argument allows to set specific sysroot pass which will be used for building LLDB API test programs. It might come in handy for setting up cross-platform remote runs of API tests on Windows host. It can be useful for cross-compiling LLDB API tests. The argument can be set using `LLDB_TEST_USER_ARGS` argument: ``` cmake ... -DLLDB_TEST_USER_ARGS="...;--sysroot;C:\path\to\sysroot;..." ... ```
-
Valentin Clement (バレンタイン クレメン) authored
In some cases where we have an `hlfir.no_reassoc` operation, the bufferization pass could not earse the hlfir.destroy op during the `hlfir.associate` op conversion as show in the example below. ``` func.func @double_free(%arg0: !fir.boxchar<1>) { %c5 = arith.constant 5 : index %true = arith.constant true %0 = hlfir.as_expr %arg0 move %true : (!fir.boxchar<1>, i1) -> !hlfir.expr<!fir.char<1,?>> %1 = hlfir.no_reassoc %0 : !hlfir.expr<!fir.char<1,?>> %2:3 = hlfir.associate %1 typeparams %c5 {adapt.valuebyref} : (!hlfir.expr<!fir.char<1,?>>, index) -> (!fir.boxchar<1>, !fir.ref<!fir.char<1,?>>, i1) fir.call @noop(%2#0) : (!fir.boxchar<1>) -> () hlfir.end_associate %2#1, %2#2 : !fir.ref<!fir.char<1,?>>, i1 hlfir.destroy %0 : !hlfir.expr<!fir.char<1,?>> return } func.func private @noop(!fir.boxchar<1>) ``` The bufferization pass is looking at uses of its source `%1` that is the result of an `hlfir.no_reassoc` operation. In order to avoid double free generation, also look at the indirection in presence of `hlfir.no_reassoc`. -
Vladislav Dzhidzhoev authored
1. Use dashes (-) instead of colons (:) as time separator in a session log file name since Windows doesn't support saving files with names containing colons. 2. Temporary file creation code is changed in the test: On Windows, the temporary file should be closed before 'session save' writes session log to it. NamedTemporaryFile() can preserve the file after closing it with delete_on_close=False option. However, this option is only available since Python 3.12. Thus mkstemp() is used for temporary file creation as the more compatible option.
-
Luke Lau authored
-
Kirill Podoprigora authored
-
Craig Topper authored
We can use multiple vnclips to saturate an i32 value into an i8 value.
-
David Truby authored
The exec.f90 test sets an environment variable for a specific command directly rather than using env, which doesn't work on shells that don't support this syntax, most notably the LIT integrated shell. This patch simply adds env so that this works on the integrated shell.
-
Simon Pilgrim authored
[X86] LowerVSELECT - split v16i16/v32i8 pre-AVX2 VSELECT ops if enough of the operands are free to split. Often on AVX1 we're better off consistently using 128-bit instructions, so recognise when the operands are loads that can be freely/cheaply split - ideally this functionality needs to be moved to isFreeToSplitVector but we're using it in a few places where we don't want to split loads yet. Based off a regression reported after #92794
-
Florian Hahn authored
Now that the VPlan for the main vector loop gets cloned in the epilogue vectorization code path, there optimizeForVFAndUF can be applied unconditionally.
-
Nikita Popov authored
-
Simon Pilgrim authored
-
Elvina Yakubova authored
-
Nikita Popov authored
These constant expressions no longer exist, so don't handle them.
-
Elvina Yakubova authored
-
Daniil Kovalev authored
With tiny code model, the GOT slot contents can be loaded via `ldr x0, :got:sym` which corresponds to `R_AARCH64_GOT_LD_PREL19` static GOT-relative relocation. See https://github.com/ARM-software/abi-aa/blob/main/aaelf64/aaelf64.rst#static-aarch64-relocations
-
jeanPerier authored
Improve hasNonDefaultLowerBounds to follow box fir.convert. This helps HLFIR helpers to generate less code when it can be easily deduced that the fir.box lower bounds were set to ones. It will help me for SELECT RANK lowering to avoid generating hlfir.declare with lower bounds inside the RANK CASE (Current situation would not be incorrect, the lower bounds would be SSA value ending-up being one, I just want simpler IR). Renamed to mayHaveNonDefaultLowerBounds since it may still answer yes when the lower bounds are ones.
-
Adam Siemieniuk authored
-
Simon Pilgrim authored
[X86] vselect-pcmp.ll - add tests showing poor codegen on AVX1 targets where we have to split/concat 128-bit subvectors We'd be better off consistently using 128-bit instructions Based off a regression reported after #92794
-
Sergey Kachkov authored
This patch adds processing of min/max intrinsics in LoopPeel in the similar way as it was done for conditional statements: for min/max(IterVal, BoundVal) we peel iterations where IterVal < BoundVal for monotonically increasing IterVal; for monotonically decreasing IterVal we peel iterations where IterVal > BoundVal (strict comparision predicates are used to minimize number of peeled iterations).
-
Endre Fülöp authored
[clang][analyzer][NFC] Add test for a limitation of alpha.unix.BlockInCriticalSection checker (#93799) Updated the documentation in `checkers.rst` to include an example of how `trylock` function is handled. Added a new test for a scenario where `pthread_mutex_trylock` is used, demonstrating the current limitation.
-
Endre Fülöp authored
- Enhanced descriptions for blocking and critical section functions - Added an additional code sample highlighting interleaved C and C++ style mutexes
-
Henry Linjamäki authored
Prefer using `llvm-spirv-<LLVM_VERSION_MAJOR>` tool (i.e. `llvm-spirv-18`) over plain `llvm-spirv`. If the versioned tool is not found in PATH, fall back to use the plain `llvm-spirv`. An issue with the using `llvm-spirv` is that the one found in PATH might be compiled against older LLVM version which could lead to crashes or obscure bugs. For example, `llvm-spirv` distributed by Ubuntu links against different LLVM version depending on the Ubuntu release (LLVM-10 in 20.04LTS, LLVM-13 in 22.04LTS).
-
Tom Eccles authored
The pass constructor can be generated automatically by tablegen. This pass does not need adapting to work with non-function top level operations because it operates specifically on call operations inside of an OpenMP declare target function.
-
Sergey Kachkov authored
-
Nikita Popov authored
To minimize diffs in an upcoming change.
-
Stanislav Mekhanoshin authored
This argument is easily deduced from AS argument.
-
Guillaume Chatelet authored
Needed to support i386 (#93709).
-
Jay Foad authored
-
Nikita Popov authored
This reverts commit e1cc9e4e. This causes some non-trivial text size increases in unoptimized builds for Bullet. Revert while I investigate.
-