[docs] Replace llvm.org/docs links with project links (#222506)
Replace same-project absolute http* URLs with project-local markdown
links. This lets Sphinx validate the targets and keeps local
documentation builds and archived release documentation self-contained.
During the review of the PR, we decided that we prefer markdown-native
links with section header slugs for cross-referencing, when possible.
This is maximally compatible with other markdown renderers, like github.
This has been added to the sphinx quickstart guide, which serves as our
project local Sphinx style guide.
The absolute link checker has been updated to guide people towards the
correct link cross-ref syntax, warning on discouraged constructs.
Part of #214861
Assisted-by: codex
[AMDGPU] Improved register pressure estimates for rescheduling (#213116)
Currently we use instantaneous register pressure estimates during
scheduling. This simple metric counts the number of registers live at
any given moment; scheduler uses it to determine when we are over the
register budget and should start prioritizing instructions that free
registers.
Unfortunately, this metric can sometimes be overly optimistic: for
example, it does not account for register redefinitions (common for
loop-carried vregs), and can underestimate the true register pressure.
This can often result in unnecessary spills and loss of performance in
production kernels.
To fix this, we introduce a stage that selectively reschedules certain
regions: it uses a lightweight, greedy, non-splitting register
allocation simulation to detect when the instantaneous estimate might be
wrong and a region should be rescheduled with tighter register limits.
[5 lines not shown]
[CIR] Implement big-bitint lowering for big-endian (#225829)
As a followup to #225470, there was a post-commit comment that we didn't
do big-endian. This patch does that implementation.
However, thanks to the lack of the PPC ABI, we can't use the same test
file (the check lines for functions made the set of prefixes absurd), so
this only does the ones that are effectively different in a meaningful
way, which is a few of the constants. WE match classic in all but
irrelevant differences (packed vs not in 1 place).
[Mips] Remove the subtarget reset pass (#225833)
MIPS updates a target-machine-wide subtarget pointer before instruction
selection. This makes global section placement depend on the last
compiled function and leaves mixed-mode decisions tied to module state.
Use each function's subtarget for lowering, TTI and MIPS16 hard-float
handling, and retain the default subtarget's small-data policy for
global placement. Remove the reset pass, unused fixed subtargets and the
redundant mips-mixed-16-32 option.
Assisted-by: chatgpt-5.6-luna # Testcases
17965 Want 64bit command touch(1)
Reviewed by: Toomas Soome <tsoome at me.com>
Reviewed by: Bill Sommerfeld <sommerfeld at hamachi.org>
Approved by: Robert Mustacchi <rm at fingolfin.org>