[RISCV][ISel] Fold FSGNJX idioms (#100718)
This patch folds `fmul X, (fcopysign 1.0, Y)` into `fsgnjx X, Y`. This
pattern exists in some graphics applications/math libraries.
Alive2: https://alive2.llvm.org/ce/z/epyL33
Since fpimm +1.0 is lowered to a load from constant pool after
OpLegalization, I have to introduce a new RISCVISD node FSGNJX and fold
this pattern in DAGCombine.
Closes https://github.com/dtcxzyw/llvm-opt-benchmark/issues/1072.
[clang] check deduction consistency when partial ordering function templates
This makes partial ordering of function templates consistent with
other entities.
Fixes #18291
[LLDB] Remove the redundent 'properties' variable (#95675)
This is described in (N3) https://pvs-studio.com/en/blog/posts/cpp/1126/
Warning message -
V547 Expression 'properties ++ > 0' is always false.
CommandObjectTarget.cpp:100
I could not understand it properly but the properties++ operation is
performed twice when the target architecture is valid.
First increment seems unnecessary since it is always false '0>0'.
---------
Co-authored-by: xgupta <shivma98.tkg at gmail.com>
[libc] Add Minimum Time and Iterations, Reduce Epsilon (#100838)
This PR adds minimums (50 iterations, 500 us, and epsilon of 0.0001) to
ensure that all benchmarks run at least a set number of times before
outputting a final measurement.
[NFC][InstCombine][SROA][Asan] Precommit test affected by #100773
Some optimizations need to be undone with
sanitizers by #100773.
Pull Request: https://github.com/llvm/llvm-project/pull/100844
[InstCombine][asan] Don't speculate loads before `select ptr`
Even if memory is valid from `llvm` point of view,
e.g. local alloca, sanitizers have API for user
specific memory annotations.
This annotations can be used to track size of the
local object, e.g. inline vector like may prevent
accessed beyond the current vector size.
So valid programs should not access those parts of
alloca before checking preconditions.
Fixes #100639.
Pull Request: https://github.com/llvm/llvm-project/pull/100773
[NFC][Load] Make `ScanFrom` required parameters
In #100773 we will go conservative for sanitizers,
so it's better to pinpoint location consciously.
Pull Request: https://github.com/llvm/llvm-project/pull/100789
[NFC][InstCombine][SROA][Asan] Precommit test affected by #100773
Some optimization need to be undone with
sanitizers by #100773.
Pull Request: https://github.com/llvm/llvm-project/pull/100844
[ELF] Add till and rewrite while (... consume("}"))
After #100493, the idiom `while (!errorCount() && !consume("}"))` could
lead to inaccurate diagnostics or dead loops. Introduce till to change
the code pattern.
[RISCV] Don't crash in RISCVMergeBaseOffset if INLINE_ASM uses address register in a non-memory constraint. (#100790)
If the register is used by a non-memory constraint we should disable the
fold. Otherwise, we may leave CommonOffset unassigned.
Fixes #100779.
workflows/release-binaries: Always pull composite actions from main branch (#100805)
If we pull from the release tag, then if there is a bug in one of the
actions on the release tag, then we can never do a build for that tag.
Pulling from main will allows us to fix bugs in the actions we use to
build the releases.