[all-commits] [llvm/llvm-project] 7ecdf6: [MCA] use std::function instead of function_ref wh...
Aiden Grossman via All-commits
all-commits at lists.llvm.org
Mon May 20 14:51:38 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 7ecdf620330d8e044a48b6f59f8eddd2f88f01d4
https://github.com/llvm/llvm-project/commit/7ecdf620330d8e044a48b6f59f8eddd2f88f01d4
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2024-05-20 (Mon, 20 May 2024)
Changed paths:
M llvm/include/llvm/MCA/IncrementalSourceMgr.h
M llvm/include/llvm/MCA/InstrBuilder.h
Log Message:
-----------
[MCA] use std::function instead of function_ref when storing (#91039)
This patch changes uses of llvm::function_ref for std::function when
storing the callback inside of a class. The LLVM Programmer's manual
mentions that llvm::function_ref is not safe to store as it contains
pointers to external memory that are not guaranteed to exist in the
future when it is stored.
This causes issues when setting callbacks inside of a class that manages
MCA state. Passing a lambda directly to the set callback functions will
end up causing UB/segfaults when the lambda is called as some external
memory is now invalid. This is easy to work around (create a separate
std::function, pass that into the function setting the callback), but
isn't ideal.
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