aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2024-02-14 14:00:23 +0100
committerRichard Biener <rguenther@suse.de>2024-02-15 09:14:22 +0100
commit52ac4c6be8664e9dab5b90e7c64df03985791893 (patch)
tree25169613dcf3e9e0235b3aebf4525350aff1e55e /gcc
parent5266f930bed06c99a9845bbde7d90cb285037733 (diff)
downloadgcc-52ac4c6be8664e9dab5b90e7c64df03985791893.zip
gcc-52ac4c6be8664e9dab5b90e7c64df03985791893.tar.gz
gcc-52ac4c6be8664e9dab5b90e7c64df03985791893.tar.bz2
[libiberty] remove TBAA violation in iterative_hash, improve code-gen
The following removes the TBAA violation present in iterative_hash. As we eventually LTO that it's important to fix. This also improves code generation for the >= 12 bytes loop by using | to compose the 4 byte words as at least GCC 7 and up can recognize that pattern and perform a 4 byte load while the variant with a + is not recognized (not on trunk either), I think we have an enhancement bug for this somewhere. Given we reliably merge and the bogus "optimized" path might be only relevant for archs that cannot do misaligned loads efficiently I've chosen to keep a specialization for aligned accesses. libiberty/ * hashtab.c (iterative_hash): Remove TBAA violating handling of aligned little-endian case in favor of just keeping the aligned case special-cased. Use | for composing a larger word.
Diffstat (limited to 'gcc')
0 files changed, 0 insertions, 0 deletions