RuntimeLibcalls: Add signatures for the divrem libcalls
Add struct types to the signature table so libcalls returning multiple
values can be described in TableGen. Use them for the ARM, Windows and
AVR divmod functions, which return the quotient and remainder in
registers, instead of building their types in C++.
The other divrem libcalls use the compiler-rt prototype, which stores
the remainder through a pointer. AVR gets its own __divmodsi4 and
__udivmodsi4, since ARM Darwin uses the compiler-rt functions with
those names.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
[CIR] Add dead_on_return for destructors (#235125)
This change adds the dead_on_return attribute for the `this` argument to
destructors unless `-fno-lifetime-dse` was used.
Assisted-by: Cursor / claude-opus-5.5
[LLVM][docs] Rewrite llvm rst docs to md [2/2] (#234567)
Tracking issue:
[#201242](https://github.com/llvm/llvm-project/issues/201242)
See the [migration
guide](https://llvm.org/docs/SphinxQuickstartTemplate.html#markdown-migration-guidelines)
for more information.
this is the second part of migrating the remaining llvm rst docs to md.
the content conversion is provided by this pr, following the rename in
the previous pr.
this was prepared with rnk's fork of rst2myst and LLM-assisted cleanup.
i manually verified that the documentation renders as expected.
Depends on #234561
the first commit is from the base pr (rename), the second commit
[4 lines not shown]
[new-prs-labeler] Add labels for LV, LAA, SCEV (#228086)
Rename vectorizers to llvm:vectorizer, and create a llvm:loopvectorize
as a refinement. Also add llvm:{loopaccessanalysis,scalarevolution}.
Fixes #228041.
Fixes #228064.
The infra area team created / renamed the teams.
[CIR] Implement 'asm label' lowering. (#238509)
This ends up being a horrifically trivial implementation: it just
changes the name of the static local to use the 'mangled name' (which
pays attention to the attribute) rather than just the static decl
name. This patch implements that and adds some trivial tests to show the
behavior.
Attributor: Invalidate analyses when attributor-light only changes attributes (#231397)
attributor-light only invalidated analyses for functions whose IR it
rewrote, but declared all function analyses preserved. Attribute changes
were not tracked, so e.g. a caller's MemorySSA could go stale after the
callee became readnone. Also invalidate functions whose attributes or
call site attributes changed, and their callers, like FunctionAttrs.
Keep the marker which stops the function simplification pipeline from
running again on CGSCC revisits, since attribute changes alone do not
need re-simplification. Without this, already simplified functions were
simplified again, making attributor-light much more expensive.
No compile time or output change on CTMark.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
RuntimeLibcalls: Handle int and long size more similarly (#238181)
Previously we eagerly computed the int size and passed it through all
the various functions to get the type signature. The long cases were
evaluated in the context that need a long. Treat these the same way
which reduces the number of arguments passed around.