pathconf: Define a new name called _PC_CASE_INSENSITIVE
Some FreeBSD file systems (msdosfs and optionally ZFS)
handle case insensitive file name lookup.
NFS (v3 and 4) provide an attribute to indicate this
capability, but without this patch, the NFS server does
not know if the file system does support this.
This patch adds the pathconf name_PC_CASE_INSENSITIVE
that can be used by the NFS server or user programs to
check for this feature.
(cherry picked from commit d6864221d88425a079f76ca106f30812c671ca9a)
[NFC][CodeGen] Replace loop with "if !empty()" (#166515)
The loop iterates once and returns the first element.
Replace it with "if !empty()" to make it more explicit.
Follow up to https://github.com/llvm/llvm-project/pull/158193.
[compiler-rt][HWAsan] Partially revert to fix test
bc27843761417148b5733855da9f791552ed3b42 changed the offset that we use
so that the valid runs do not conflict with libc. I adjusted every value
that could have conflicted which actually started causing one of the
lines that should fail into one that did not.
[lld][WebAssembly] Default to --stack-first (#166998)
The really painful part of this PR was updating all the test files. I
had some help from Gemini GLI there
which did a pretty good job (got maybe 80% of the updates done).
Fixes: #151015
[lldb][ClangModulesDeclVendor] Print Clang module loading errors to expression log instead of console (#166964)
Depends on:
* https://github.com/llvm/llvm-project/pull/166917
* https://github.com/llvm/llvm-project/pull/166940
While these errors can contribute to an expression failing, they are
never *the* reason the expression failed. I.e., they are always just
'note:' diagnostics that we hand-emit. Because they are quite noisy (and
we potentially have many of them if we auto-load all modules in a CU),
this patch logs the errors to the `expr` log, instead of the console.
Previously these errors would only get omitted when the expression
itself failed. Meaning if the expression failed, we'd dump these 'note'
module load errors in next to the actual expression error, obscuring the
output. Moreover, if the expression succeeded, any module load errors
would be dropped. Now we always log all module loading errors to the
expression log, regardless of whether the expression fails or not.
[lld][macho] Move unwind logic from equalsVariable to equalsConstant (#165325)
Since equalsVariable runs a lot more times, we want to minimize the work
it
needs to do. Anything not dependent on the icfEqClass values should get
hoisted
out.
With this change, ICF runs ~1.7% faster when linking clang.
Benchmarking approach:
cbdr sample -b ~/extract-icf-time.sh ~/old/ld64.lld bin/ld64.lld
--timeout=300s | cbdr analyze -s 95
`extract-icf-time.sh` runs the clang link command with the `--icf=all
--time-trace` flags, then parses out the ICF duration from the resulting
time
trace using `jq`:
[9 lines not shown]
[CAS] Fix msan error in ObjectStore::importObject() (#167051)
Fix msan error that reference to ObjectRef is used after the storage is
deleted. Make sure all usages is finished before deleting the container.