diff options
author | Craig Topper <craig.topper@sifive.com> | 2023-08-23 15:55:37 -0700 |
---|---|---|
committer | Craig Topper <craig.topper@sifive.com> | 2023-08-23 15:55:44 -0700 |
commit | e1a0e8258f788a86b248b4cc6bde8a96444a4720 (patch) | |
tree | d015792cbf3b6af7097a23b8ac069fab890cda46 /llvm/tools/llvm-cov/SourceCoverageViewText.cpp | |
parent | f862d62350aebab1b5839c22f4f5ab8aba3abe02 (diff) | |
download | llvm-e1a0e8258f788a86b248b4cc6bde8a96444a4720.zip llvm-e1a0e8258f788a86b248b4cc6bde8a96444a4720.tar.gz llvm-e1a0e8258f788a86b248b4cc6bde8a96444a4720.tar.bz2 |
[GlobalISel] Copy the implementation of SubtargetFeature and use it for PredicateBitset.
PredicateBitset currently uses std::bitset, but std::bitset doesn't
have a constexpr constructor or any constexpr methods until C++23.
Each target that supports GlobalIsel has as an array of PredicateBitset
objects that currently use a global constructor.
SubtargetFeature used by the MC layer for feature bits, has its own
implementation of std::bitset that has constexpr constructor and methods
that provides all the capabilities that PredicateBitset needs.
This patch copies the implementation from SubtargetFeature, makes
it a template class, and puts it in ADT. I'll migrate SubtargetFeature
in a separate patch. Adapting all existing users to it being a template
was distracting from the goal of this patch.
This reduces the binary size of llc built with gcc 8.5.0 on my local
build by ~15k.
Reviewed By: arsenm
Differential Revision: https://reviews.llvm.org/D158576
Diffstat (limited to 'llvm/tools/llvm-cov/SourceCoverageViewText.cpp')
0 files changed, 0 insertions, 0 deletions