- Mar 15, 2024
-
-
Matt Arsenault authored
Fixes casts between double/float/half and i128. The pass seems to be broken for bfloat though. I also believe we could have a better implementation which attempts to make use the native 32-bit conversion instructions like the 64-bit expansion does.
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
serge-sans-paille authored
Blocking that signal causes inter-blocking for profilers that monitor threads through that signal. Update tests accordingly to use an uncaught signal. This is a recommit of 6f3f659c with the tests fixed. Fix #83844 and #83561
-
Matthias Gehre authored
Introduces a SubscriptOp that allows to write IR like ``` func.func @load_store(%arg0: !emitc.array<4x8xf32>, %arg1: !emitc.array<3x5xf32>, %arg2: index, %arg3: index) { %0 = emitc.subscript %arg0[%arg2, %arg3] : <4x8xf32>, index, index %1 = emitc.subscript %arg1[%arg2, %arg3] : <3x5xf32>, index, index emitc.assign %0 : f32 to %1 : f32 return } ``` which gets translated into the C++ code ``` v1[v2][v3] = v0[v1][v2]; ``` To make this happen, this - adds the SubscriptOp - allows the subscript op as rhs of emitc.assign - updates the emitter to print SubscriptOps The emitter prints emitc.subscript in a delayed fashing to allow it being used as lvalue. I.e. while processing ``` %0 = emitc.subscript %arg0[%arg2, %arg3] : <4x8xf32>, index, index ``` it will not emit any text, but record in the `valueMapper` that the name for `%0` is `v0[v1][v2]`, see `CppEmitter::getSubscriptName`. Only when that result is then used (here in `emit... -
Jie Fu authored
llvm-project/llvm/lib/CodeGen/MachineLoopInfo.cpp:215:14: error: lambda capture 'Reg' is not used [-Werror,-Wunused-lambda-capture] [this, Reg](const MachineInstr &MI) { return this->contains(&MI); }); ~~^~~ 1 error generated. -
Timm Bäder authored
Instead of aborting interpretation right away. This way we can still successfully evaluate such functions provided we don't reach the Error op at all.
-
Sander de Smalen authored
At the moment MachineLoopInfo has a very simple way to determine if a use of a physical register will be invariant: if it is not a constant value or if it's not an ignorable use, then it's not considered invariant. From a compile-time performance perspective this makes a lot of sense, but it limits code that uses implicit physical registers from being hoisted until the later MachineLICM pass (after register allocation), which has a lot fewer opportunities to hoist. For AArch64 SME we use an implicit physical register ($vg) to avoid rematerialization beyond certain instructions. Doing this led to regressions because simple expressions were no longer hoisted by Early MachineLICM. This patch adds some extra checks to 'isLoopInvariant' to see if any of the defs are found in the loop. If not, we can considered it loop invariant. We expect the impact on compile-time to be negligible because there is an incentive for users to reduce the need for the smstart/smstop instructions that define $vg. In either case, we've put the functionality under a target interface to limit this only to specific registers.
-
Timm Bäder authored
-
Artem Tyurin authored
Fixes https://github.com/llvm/llvm-project/issues/61240.
-
Timm Bäder authored
-
Timm Bäder authored
The function returns a const Expr* anyway.
-
Sander de Smalen authored
This is just a bit of cleanup to make the pseudo/code easier to understand. This is based on the observation that we only need to pass in a runtime value for 'pstate' if is actually needed for generating a runtime check.
-
Nikita Popov authored
This is mainly for consistency across code paths, but also makes sure that all calls use IRInstrumentationBuilder and its special debuginfo handling. The two remaining uses don't actually need RAUW, they just have to erase the original instruction.
-
SahilPatidar authored
Alive2: https://alive2.llvm.org/ce/z/n_ns-W Resolve #84608
-
Nikita Popov authored
atomicrmw xchg also accepts pointer and floating-point values. To handle those, insert necessary casts to and from integer. This is what we do for cmpxchg as well. Fixes https://github.com/llvm/llvm-project/issues/85226.
-
Timm Bäder authored
By doing the same thing the current interpreter does: Just passing on the first parameter.
-
Mark de Wever authored
With the timezone information available in the CI these tests can be enabled again. Fixes: https://github.com/llvm/llvm-project/issues/81654
-
Adrian Kuegel authored
atom.add.noftz.f16 is supported since SM 7.0
-
Mehdi Amini authored
-
Fangrui Song authored
The section type from 9f64604e (2013) was untested.
-
Mehdi Amini authored
Clang has a custom separate pipeline integrated with libc++ that only runs in release mode. It means that changes which touches only clang won't run the clang tests in the configuration used by LLVM premerge and will break it unknowingly.
-
Fangrui Song authored
getBuildAttributes is only called for ARM/RISCV object files and `SHT_ARM_ATTRIBUTES == SHT_RISCV_ATTRIBUTES`, so the following check `Sec.sh_type == ELF::SHT_ARM_ATTRIBUTES || Sec.sh_type == ELF::SHT_RISCV_ATTRIBUTES` is actually fine. But the convention is to guard such processor-specific section type checks with an e_machine test.
-
Christudasan Devadasan authored
This would bring a cleaner interface while obtaining wait event masks by combining various wait event types in the derived classes.
-
Sameer Sahasrabuddhe authored
The new token type is used in #67006 for implementing convergence control tokens in GMIR.
-
Matthias Springer authored
This commit adds a new test-only op: `sparse_tensor.has_runtime_library`. The op returns "1" if the sparse compiler runs in runtime library mode. This op is useful for writing test cases that require different IR depending on whether the sparse compiler runs in runtime library or codegen mode. This commit fixes a memory leak in `sparse_pack_d.mlir`. This test case uses `sparse_tensor.assemble` to create a sparse tensor SSA value from existing buffers. This runtime library reallocates+copies the existing buffers; the codegen path does not. Therefore, the test requires additional deallocations when running in runtime library mode. Alternatives considered: - Make the codegen path allocate. "Codegen" is the "default" compilation mode and it is handling `sparse_tensor.assemble` correctly. The issue is with the runtime library path, which should not allocate. Therefore, it is better to put a workaround in the runtime library path than to work around the issue with a new flag in the codegen path. - Add a `sparse_tensor.runtime_only` attribute to `bufferization.dealloc_tensor`. Verifying that the attribute can only be attached to `bufferization.dealloc_tensor` may introduce an unwanted dependency of `MLIRSparseTensorDialect` on `MLIRBufferizationDialect`.
-
Matthias Springer authored
This commit fixes memory leaks in sparse tensor integration tests by adding `bufferization.dealloc_tensor` ops. Note: Buffer deallocation will be automated in the future with the ownership-based buffer deallocation pass, making `dealloc_tensor` obsolete (only codegen path, not when using the runtime library).
-
Matthias Springer authored
This commit fixes a memory leak in `sparse_codegen_foreach.mlir`. The bufferization inserted a copy for the operand of `sparse_tensor.foreach` because it conservatively assumed that the op writes to the operand.
-
Owen Pan authored
Initialize IsCpp in LeftRightQualifierAlignmentFixer ctor.
-
Mehdi Amini authored
Reverts llvm/llvm-project#84599 This broke the presubmit bot.
-
eddyz87 authored
There are a few places where `arena` name is used for pointers in non-zero address space in BPF backend, rename these to use a more generic `address_space`: - macro `__BPF_FEATURE_ARENA_CAST` -> `__BPF_FEATURE_ADDR_SPACE_CAST - name for arena global variables section `.arena.N` -> `.addr_space.N`
-
Owen Pan authored
-
Jordan Rupprecht authored
This is a quick fix to make the bzl build work w/ this change. The sources included in the cc_library don't actually need the values here. Before adding more files, this should be replaced with something that actually parses Features.inc.in and sets configurable values.
-
Matthias Springer authored
D144193 (#66771) has been merged.
-
Jordan Rupprecht authored
-
Iman Hosseini authored
grid can be 3 dimensional. (@clementval)
-
Jordan Rupprecht authored
-
Haohai Wen authored
Intel Vtune/SEP has supported collecting LBR on Windows and generating perf-script file which is same format as Linux perf script. This patch teaches llvm-profgen to disassemble COFF binary so that we can do Sampling based PGO on Windows.
-
josh11b authored
Creates a `BUILD.bazel` file for the `clangd` directory in the project overlay. This upstreams the patch that allows https://github.com/carbon-language/carbon-lang/tree/trunk/language_server to use `clangd` as a library. This was created as part of a Summer of Code project building a prototype Carbon language server. If this is not an appropriate architecture, I'm very open to alternative paths forward. Thanks!
-
Kazu Hirata authored
We always apply all of the items in PatchItems. This patch simplifies the interface of ProfOStream::patch by switching to ArrayRef.
-