Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6
# 3787fbf0 11-Dec-2024 Alex Bradbury <asb@igalia.com>

[RISCV] Enable merging of external globals by default (#117880)

This follows up #115495 by enabling merging of external globals by
default, which had been left as a next step in order to make the

[RISCV] Enable merging of external globals by default (#117880)

This follows up #115495 by enabling merging of external globals by
default, which had been left as a next step in order to make the
previous change more incremental and so we can more easily narrow down
on any identified regressions.

Enabling merging of external globals matches what Arm does (for non
mach-o targets), though AArch64 doesn't as there were [some
concerns](https://reviews.llvm.org/D61947) it might cause regressions in
some cases.

See https://github.com/llvm/llvm-project/pull/117880 for benchmark figures and discussion.

show more ...


Revision tags: llvmorg-19.1.5, llvmorg-19.1.4
# 9d02264b 15-Nov-2024 Alex Bradbury <asb@igalia.com>

[RISCV] Enable global merging by default (#115495)

From the discussion at the round-table at the RISC-V Summit it was clear
people see cases where global merging would help. So the direction of
en

[RISCV] Enable global merging by default (#115495)

From the discussion at the round-table at the RISC-V Summit it was clear
people see cases where global merging would help. So the direction of
enabling it by default and iteratively working to enable it in more
cases or to improve the heuristics seems sensible. This patch tries to
make a minimal step in that direction.

show more ...


# ae4fc805 09-Nov-2024 Alex Bradbury <asb@igalia.com>

[RISCV] When using global merging, don't enable merging of external globals by default (#115484)

AArch64 left this disabled after seeing some cases of slightly worse
codegen that weren't tracked do

[RISCV] When using global merging, don't enable merging of external globals by default (#115484)

AArch64 left this disabled after seeing some cases of slightly worse
codegen that weren't tracked down, so I suggest as a path to
incrementally moving towards enable globals merging we follow suit, and
evaluate turning on later.

This patch disables merging of external globals, but also adds a flag to
override that. This reduces churn in test cases, simplifies benchmarking
runs, and this flag can be removed later.

A follow-on PR enables the globals merging pass by default (and as it's
based on this commit, merging of external globals is disabled just as
they are for AArch64).

show more ...


Revision tags: llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7
# 0f669154 03-Jun-2024 Michael Maitland <michaeltmaitland@gmail.com>

[GlobalMerge] Add MinSize feature to the GlobalMerge Pass. (#93686)

We add a feature that prevents the GlobalMerge pass from considering
data smaller than a minimum size in bytes for merging.

Th

[GlobalMerge] Add MinSize feature to the GlobalMerge Pass. (#93686)

We add a feature that prevents the GlobalMerge pass from considering
data smaller than a minimum size in bytes for merging.

The MinSize is set in 3 ways:
1. If global-merge-min-data-size is explicitly set, then it uses that
value.
2. If SmallDataLimit is set and non-zero, then SmallDataLimit + 1 is
used.
3. Otherwise, 0 is used, which means all sizes are considered for
merging.

We found that this feature allowed us to see the benefit of the
GlobalMerge pass while eliminating some merging that was not beneficial.
This feature allowed us to enable the GlobalMerge pass on RISC-V in our
downstream by default because it led to improvements on multiple
benchmark suites.

I plan to post a separate patch to propose enabling this by default on
RISC-V. But I do not want that discussion to be part of the discussion
of adding this feature, so I am keeping the patches separate.

show more ...