- Feb 05, 2024
-
-
Nikita Popov authored
The code ended up treating a use in a call argument as if it were a call. Make sure this is actually the callee use.
-
jeanPerier authored
Runtime globals are compiler generated globals injected in user scopes. They are never referred to directly in lowering code, we only need th fur.global for them. Yet lowering was creating hlfir.declare for them in module procedures. In modern fortran apps, this blows up the generated IR for nothing (Types with dozens of components, type bound procedures and parents can create in the order of 10 000 runtime info globals to describe them, if there is a 100 module procedure, that is that is a few million operations generated and processed in each pass for nothing).
-
Nikita Popov authored
IndVars may replace an instruction with one of its operands, if they have the same SCEV expression. However, such a replacement may be more poisonous. First, check whether the operand being poison implies that the instruction is also poison, in which case the replacement is always safe. If this fails, check whether SCEV can determine that reusing the instruction is safe, using the same check as SCEVExpander. Fixes https://github.com/llvm/llvm-project/issues/79861.
-
pvanhout authored
-
David Green authored
-
Nathan Ridge authored
Fixes https://github.com/clangd/clangd/issues/1925
-
pvanhout authored
There is an implicit dependency here and we can't call CodeGenIntrinsics.cpp functions from PatternParser.cpp reliably, so some build bots were failing. Try to add LLVMTableGenCommon to the list of source files to see if it fixes it, if it doesn't , I'll revert.
-
Haojian Wu authored
This fixes #69219. Consider an example: ``` CoTask my_coroutine() { std::abort(); co_return 1; // unreachable code warning. } ``` Clang emits a CFG-based unreachable warning on the `co_return` statement (precisely the `1` subexpr). If we remove this statement, the program semantic is changed (my_coroutine is not a coroutine anymore). This patch fixes this issue by never considering coroutine statements as dead statements. -
Pierre van Houtryve authored
This just moves code around so the MIR pattern parsing logic is separated and reusable.
-
pvanhout authored
-
Dani authored
-
Pierre van Houtryve authored
Introduce Code Object V6 in Clang, LLD, Flang and LLVM. This is the same as V5 except a new "generic version" flag can be present in EFLAGS. This is related to new generic targets that'll be added in a follow-up patch. It's also likely V6 will have new changes (possibly new metadata entries) added later. Docs change are part of the follow-up patch #76955
-
Craig Topper authored
While working on -riscv-experimental-rv64-legal-i32, I noticed this missed optimization in our current codegen. This expands to SADDO/SSUBO+select while still in i32. These will be type legalized individually.
-
Brandon Wu authored
-
NAKAMURA Takumi authored
-
Kai Luo authored
Fixes https://github.com/llvm/llvm-project/issues/80557.
-
Craig Topper authored
This matches the codegen we get from type legalization without -riscv-experimental-rv64-legal-i32.
-
Aiden Grossman authored
A recent comment modified the job to only run on the main branch, but the formatting was slightly off, causing the job to not run. This patch fixes the formatting so the job will run as expected.
-
Chia authored
-
Shengchen Kan authored
llvm-issue: https://github.com/llvm/llvm-project/issues/68810
-
NAKAMURA Takumi authored
* `getFunctionBitmap()` stores not `std::vector<uint8_t>` but `BitVector`. * `CounterMappingContext` holds `Bitmap` (instead of the ref of bytes) * `Bitmap` and `BitmapIdx` are used instead of `evaluateBitmap()`. FIXME: `InstrProfRecord` itself should handle `Bitmap` as `BitVector`.
-
Anton Korobeynikov authored
Add github workflow that checks if a private email address was used to contribute to the repo and warn in this case (#80514) Following the Discourse discussion, warn in case of a private email address was used in a PR.
-
Sheng authored
-
ZijunZhaoCCK authored
Followup for https://github.com/llvm/llvm-project/pull/75373 1. Make this feature not just available for android, but everyone. 2. Correct some target triples. 3. Add opencl to the environment type list.
-
Craig Topper authored
If we have a shifted mask, we may be able to reduce the load width to the width of the non-zero part of the mask and use an offset to the base address to remove the srl. The offset is given by C+trailingzeros(ShiftedMask). Then we add a final shl to restore the trailing zero bits. I've use the ARM test because that's where the existing (and (srl (load))) tests were. The X86 test was modified to keep the H register. -
Craig Topper authored
Replace calls to getShiftAmountTy+getConstant with getShiftAmountContant.
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Kazu Hirata authored
-
NAKAMURA Takumi authored
* Revise instructions for regeneration, not to create executables. * Add instructions to regenerate both object files and test vectors (except for `mcdc-general-none.proftext`) * Reformat
-
Craig Topper authored
-
Craig Topper authored
-
rmarker authored
The RTBS_None option in Clang-format avoids breaking after a short return type. However, there was an issue with the behaviour in that it wouldn't take the leading indentation of the line into account. This meant that the behaviour wasn't applying when intended. In order to address this situation without breaking the existing formatting, RTBS_None has been deprecated. In its place are two new options for AlwaysBreakAfterReturnType. The option RTBS_Automatic will break after the return type based on PenaltyReturnTypeOnItsOwnLine. The option RTBS_ExceptShortType will take the leading indentation into account and prevent breaking after short return types. This allows the inconsistent behaviour of RTBS_None to be avoided and users to decide whether they want to allow breaking after short return types or not. Resolves #78010
-
Dave Lee authored
The implementation of `FormatCache::Entry &FormatCache::GetEntry(ConstString)` is effectively a duplication of `std::map::operator[]`. This change deletes `GetEntry` and replaces its use with `operator[]`.
-
Craig Topper authored
-