[LifetimeSafety] Use ImmutableList for buildOriginFlowChain DFS nodes (#208890)
This commit mainly address the suggestion in
https://github.com/llvm/llvm-project/pull/204592#discussion_r3523582077
to use `ImmutableList` for the DFS nodes in `buildOriginFlowChain`, and
also updates the `llvm_unreachable` messages.
---------
Signed-off-by: Yuan Suo <suoyuan666 at s5n.xyz>
Co-authored-by: Utkarsh Saxena <usx at google.com>
[CodeGen] Remove dead declarations (#215013)
The corresponding function definitions were removed on Jan 12, 2022 in
commit 6a605b97a2006bd391f129a606483656b7c6fb28.
switch aarch64 CPU feature detection to elf_aux_info()
ok kettenis@ tb@
Restore commit; install media build error is not reproducible (deraadt@)
or was operator error (naddy@)
[CIR] Accept _Complex and all float formats in x86_64 callconv lowering
The CallConvLowering bridge accepted only float and double, so a function taking
a _Complex, or a float in any other format, failed the pass instead of being
classified. An all-float aggregate failed for a different reason: its SSE
eightbyte coerces to a vector, and the bridge had no way to represent one, so it
reported the coercion NYI rather than emitting a wrong signature.
Mapping every CIR floating-point type through FPTypeInterface covers all of them
at once. A _Complex maps to the library's complex type and a vector coercion
now converts back to a CIR vector.
Accepting a long double also makes a union holding one classifiable. That
exposes the ABI-compatibility flags, which the pass left at the library
defaults. They now come from the triple and the compatibility version, which is
what lets a long double union reach registers on Darwin instead of memory.
updateArgAttrs appended argument attributes instead of setting them, so a name
already present landed in the dictionary twice. CIRGen marks a _Complex long
[8 lines not shown]
[docs] Prefer colon fences to delineate blocks containing markup (#214921)
Myst has an extension,
[colon_fence](https://myst-parser.readthedocs.io/en/latest/syntax/optional.html#syntax-colon-fence),
that we enable in our docs. There are many Markdown-aware tools out
there that know to interpret triple backtick as a code block fence, so
they highlight them as pre-formatted text. Colon fences are an
unrecognized Myst extension, and if the Sphinx directive contains a
block of markdown formatted text, that's the desired behavior.
Therefore, at some point during the migration, I started using them.
However, I didn't document this guideline, and I didn't apply it
consistently to the early docs. This PR does that: documents the
guideline, and applies it to our docs.
After this change:
```
❯ rg '```\{(option|note|todo|admonition|warning)\}' | cut -d / -f 1 | sort | uniq -c
72 clang-tools-extra
```
[6 lines not shown]