[all-commits] [llvm/llvm-project] 0daeed: [SPIR-V] Improve implementation of the duplicates ...
Vyacheslav Levytskyy via All-commits
all-commits at lists.llvm.org
Wed Jun 19 01:39:36 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 0daeed645d22704250bc22aec121c467ffc72e22
https://github.com/llvm/llvm-project/commit/0daeed645d22704250bc22aec121c467ffc72e22
Author: Vyacheslav Levytskyy <vyacheslav.levytskyy at intel.com>
Date: 2024-06-19 (Wed, 19 Jun 2024)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVDuplicatesTracker.h
M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
M llvm/lib/Target/SPIRV/SPIRVUtils.h
Log Message:
-----------
[SPIR-V] Improve implementation of the duplicates tracker's storage (#95958)
This PR continues https://github.com/llvm/llvm-project/pull/94952,
managing FunctionType in the same way as a pointee types in
https://github.com/llvm/llvm-project/pull/94952 (that is working with
TypedPointers pointee types rather than with original llvm's untyped
pointers).
This PR also fully reworks the base type for the duplicates tracker's
storage to conform with and reuse DenseMapInfo. Previous implementation
didn't store enough info to differ between key values (see isEqual()
implemented as equality of derived from arguments hash values). This, in
turn, led to random crashes in very rare occasions when hash value of an
actual key matched hash values of empty and tombstone instances. In this
PR we use std::tuple instead of a tailor-made class hierarchy, both
reusing DenseMapInfo templates and getting rid of the crash condition.
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list