aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlizzie <lizzie@eden-emu.dev>2025-10-31 15:13:31 +0100
committercrueter <crueter@eden-emu.dev>2025-10-31 15:13:31 +0100
commit2dc6d773eefcd0575cf8df3ea20bfba66f3a47b5 (patch)
tree99b978eda1eaf9d4f753e4986d2b8853daa4989d
parent402d8e833d54525d2c7a53f742d3b4a2ab3aeb7c (diff)
[common, hle/kernel] Remove LTO_NOINLINE (#2908)
- Dont just tell the compiler what to inline/what not to inline; the compiler will be pissed off and make bad codegen Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2908 Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Reviewed-by: Maufeat <sahyno1996@gmail.com> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: crueter <crueter@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
-rw-r--r--src/common/common_funcs.h7
-rw-r--r--src/core/hle/kernel/kernel.cpp17
2 files changed, 11 insertions, 13 deletions
diff --git a/src/common/common_funcs.h b/src/common/common_funcs.h
index ba3081efb4..4c5a009ec7 100644
--- a/src/common/common_funcs.h
+++ b/src/common/common_funcs.h
@@ -1,3 +1,6 @@
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-License-Identifier: GPL-3.0-or-later
+
// SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
@@ -39,12 +42,8 @@
#define Crash() exit(1)
#endif
-#define LTO_NOINLINE __attribute__((noinline))
-
#else // _MSC_VER
-#define LTO_NOINLINE
-
// Locale Cross-Compatibility
#define locale_t _locale_t
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp
index 0ff81066e9..1cc060827d 100644
--- a/src/core/hle/kernel/kernel.cpp
+++ b/src/core/hle/kernel/kernel.cpp
@@ -359,7 +359,7 @@ struct KernelCore::Impl {
static inline thread_local u8 host_thread_id = UINT8_MAX;
/// Sets the host thread ID for the caller.
- LTO_NOINLINE u32 SetHostThreadId(std::size_t core_id) {
+ u32 SetHostThreadId(std::size_t core_id) {
// This should only be called during core init.
ASSERT(host_thread_id == UINT8_MAX);
@@ -370,17 +370,16 @@ struct KernelCore::Impl {
}
/// Gets the host thread ID for the caller
- LTO_NOINLINE u32 GetHostThreadId() const {
+ u32 GetHostThreadId() const {
return host_thread_id;
}
// Gets the dummy KThread for the caller, allocating a new one if this is the first time
- LTO_NOINLINE KThread* GetHostDummyThread(KThread* existing_thread) {
- const auto initialize{[](KThread* thread) LTO_NOINLINE {
+ KThread* GetHostDummyThread(KThread* existing_thread) {
+ const auto initialize{[](KThread* thread) {
ASSERT(KThread::InitializeDummyThread(thread, nullptr).IsSuccess());
return thread;
}};
-
thread_local KThread raw_thread{system.Kernel()};
thread_local KThread* thread = existing_thread ? existing_thread : initialize(&raw_thread);
return thread;
@@ -410,11 +409,11 @@ struct KernelCore::Impl {
static inline thread_local bool is_phantom_mode_for_singlecore{false};
- LTO_NOINLINE bool IsPhantomModeForSingleCore() const {
+ bool IsPhantomModeForSingleCore() const {
return is_phantom_mode_for_singlecore;
}
- LTO_NOINLINE void SetIsPhantomModeForSingleCore(bool value) {
+ void SetIsPhantomModeForSingleCore(bool value) {
ASSERT(!is_multicore);
is_phantom_mode_for_singlecore = value;
}
@@ -425,14 +424,14 @@ struct KernelCore::Impl {
static inline thread_local KThread* current_thread{nullptr};
- LTO_NOINLINE KThread* GetCurrentEmuThread() {
+ KThread* GetCurrentEmuThread() {
if (!current_thread) {
current_thread = GetHostDummyThread(nullptr);
}
return current_thread;
}
- LTO_NOINLINE void SetCurrentEmuThread(KThread* thread) {
+ void SetCurrentEmuThread(KThread* thread) {
current_thread = thread;
}