[CodeGen] Teach ReplaceWithVeclib to use correct calling convention (#180773)
We correctly replace calls to the LLVM intrinsic with the vector
math variant, but fail to also copy the calling convention. This
is important for veclibs such as ArmPL where the aarch64_vector_pcs
convention reduces the number of registers that need saving
across calls.
[TableGen] Use standard name for default mode in debug printing (#181739)
In comments in generated files and in -register-info-debug output, use
the standard name "DefaultMode" for consistency, instead of hard coding
an alternative name "Default".
Firewall: Schedule: Fix is_schedule_inuse so it works for legacy and new rules (#9807)
* Firewall: Schedule: Fix is_schedule_inuse so it works for legacy and new rules
* Use config_read_array instead
[AArch64][GlobalISel] Merge SDAG check into GlobalISel check
As GlobalISel no longer fails to lower these intrinsics, and SDAG and GI generated code is identical, the two test checks can safely be merged into one.
[AArch64][GloballISel] Put result of fp16 -> s16 convert intrinsic on fpr
Previously, RegBankSelect would place the result of an fp16 -> s16 conversion intrinsic on a gpr. This would cause Instruction Selection to fail, as there are no 16-bit gprs.
Floating point convert intrinsics affected:
fcvtnu / fcvtns
fcvtau / fcvtas
fcvtmu / fcvtms
fcvtpu / fcvtps
[Object][ELF] Fix section header zero check
The PN_XUM is a necessary condition for reading shdr0
regardless of the value of e_shoff. Without this,
readShdrZero falsely returns the garbage value in ELF
header instead of emitting warning.
devel/git-flow-next: Add new port
Modern reimplementation of git-flow in Go that offers greater
flexibility while maintaining backward compatibility with the original
git-flow and git-flow-avh.
PR: 293234
[clang][ARM] Refactor argument handling in `EmitAArch64BuiltinExpr` (NFC)
Refactor `EmitAArch64BuiltinExpr` so that all AArch64/NEON builtins
handled by this hook share a common path for generating LLVM IR
arguments (collected into the `Ops` SmallVector<Value*>).
Previously, the argument emission loop unconditionally skipped the
trailing argument:
```cpp
for (unsigned i = 0, e = E->getNumArgs() - 1; i != e; ++i)
```
This was originally intended to ignore the extra Sema-only argument
used by overloaded NEON builtins (e.g. the type discriminator passed
by `__builtin_neon_*` intrinsics). However, this logic was applied
unconditionally.
This patch updates the loop to skip the trailing argument only when
[28 lines not shown]
[lldb] Improve ansi::OutputWordWrappedLines (#181165)
This PR fixes a few issues including one that prevented the use of
llvm::StringRef. Follow up to #180947.
Some behaviour for rarely seen inputs has been defined. For example
empty strings. In normal use with command descriptions we do not expect
this to happen, but now it's a utility function, it's easier to reason
about if we cover all possible inputs.
* Empty string in now results in an empty string out. Rather than a
single newline. This is less surprising, since no lines were split.
* Bugs were fixed in the handling of single word inputs. If a single
word cannot fit within the column limit we just print it unmodified.
* Leading spaces are trimmed from input and if that results in no text,
empty string is returned. Another unexpected input, but cheap to handle
and makes the rest of the code a bit simpler.
* llvm::StringRef is now used for the input text. This was enabled by
fixing a bug in checking whether end had reached final_end. I think the
[6 lines not shown]
[clang] Fix some static initialization race-conditions (#181367)
- clang/StaticAnalyzer: fix static init in findKnownClass. Prior to this patch two threads running in findKnownClass could result in a race condition.
- clang/Stmt: fix StmtClassNameTable array initialization: prior to this patch there was a race condition when two threads check`if(Initialized)` at the same time.
- clang/ParsedAttrInfo: fix race condition in getAttributePluginInstances. Prior to this patch two threads could enter `if(empty())` check.
- clang/CodeGen: correctly restore diagnostic handler in HandleTranslationUnit. Prior to this patch an early exit from HandleTranslationUnit could result in not restoring previous diagnostic handler.