From de4fa721a36f128e63465ed979fd9bbedcd0dd08 Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Mon, 25 Dec 2023 06:04:01 -0800 Subject: [PATCH] FEXCore: Moves IREmitter from the public API to backend No functional change --- FEXCore/Source/Interface/Core/Core.cpp | 2 +- FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp | 2 +- FEXCore/Source/Interface/Core/OpcodeDispatcher.h | 2 +- FEXCore/Source/Interface/Core/OpcodeDispatcher/Crypto.cpp | 1 - FEXCore/Source/Interface/Core/OpcodeDispatcher/X87.cpp | 1 - FEXCore/Source/Interface/Core/OpcodeDispatcher/X87F64.cpp | 1 - FEXCore/Source/Interface/HLE/Thunks/Thunks.cpp | 3 ++- FEXCore/Source/Interface/IR/IREmitter.cpp | 3 ++- FEXCore/{include/FEXCore => Source/Interface}/IR/IREmitter.h | 0 FEXCore/Source/Interface/IR/IRParser.cpp | 2 +- FEXCore/Source/Interface/IR/Passes/ConstProp.cpp | 2 +- FEXCore/Source/Interface/IR/Passes/DeadCodeElimination.cpp | 2 +- .../Source/Interface/IR/Passes/DeadContextStoreElimination.cpp | 2 +- FEXCore/Source/Interface/IR/Passes/DeadStoreElimination.cpp | 2 +- FEXCore/Source/Interface/IR/Passes/IRCompaction.cpp | 2 +- FEXCore/Source/Interface/IR/Passes/IRDumperPass.cpp | 1 + FEXCore/Source/Interface/IR/Passes/IRValidation.cpp | 2 +- FEXCore/Source/Interface/IR/Passes/InlineCallOptimization.cpp | 2 +- FEXCore/Source/Interface/IR/Passes/LongDivideRemovalPass.cpp | 2 +- FEXCore/Source/Interface/IR/Passes/RAValidation.cpp | 2 +- .../IR/Passes/RedundantFlagCalculationElimination.cpp | 3 ++- FEXCore/Source/Interface/IR/Passes/RegisterAllocationPass.cpp | 2 +- .../Source/Interface/IR/Passes/ValueDominanceValidation.cpp | 2 +- 23 files changed, 22 insertions(+), 21 deletions(-) rename FEXCore/{include/FEXCore => Source/Interface}/IR/IREmitter.h (100%) diff --git a/FEXCore/Source/Interface/Core/Core.cpp b/FEXCore/Source/Interface/Core/Core.cpp index 710da21ad0..83eec77879 100644 --- a/FEXCore/Source/Interface/Core/Core.cpp +++ b/FEXCore/Source/Interface/Core/Core.cpp @@ -21,6 +21,7 @@ desc: Glues Frontend, OpDispatcher and IR Opts & Compilation, LookupCache, Dispa #include "Interface/Core/X86Tables/X86Tables.h" #include "Interface/HLE/Thunks/Thunks.h" #include "Interface/IR/IR.h" +#include "Interface/IR/IREmitter.h" #include "Interface/IR/Passes/RegisterAllocationPass.h" #include "Interface/IR/Passes.h" #include "Interface/IR/PassManager.h" @@ -39,7 +40,6 @@ desc: Glues Frontend, OpDispatcher and IR Opts & Compilation, LookupCache, Dispa #include #include #include -#include #include #include #include diff --git a/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp b/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp index dfd71fcd4d..14b9d6584a 100644 --- a/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp +++ b/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp @@ -11,6 +11,7 @@ desc: Handles x86/64 ops to IR, no-pf opt, local-flags opt #include "Interface/Context/Context.h" #include "Interface/Core/OpcodeDispatcher.h" #include "Interface/Core/X86Tables/X86Tables.h" +#include "Interface/IR/IREmitter.h" #include #include @@ -18,7 +19,6 @@ desc: Handles x86/64 ops to IR, no-pf opt, local-flags opt #include #include #include -#include #include #include #include diff --git a/FEXCore/Source/Interface/Core/OpcodeDispatcher.h b/FEXCore/Source/Interface/Core/OpcodeDispatcher.h index a1dd7b15bd..4f8ee34290 100644 --- a/FEXCore/Source/Interface/Core/OpcodeDispatcher.h +++ b/FEXCore/Source/Interface/Core/OpcodeDispatcher.h @@ -4,13 +4,13 @@ #include "Interface/Core/Frontend.h" #include "Interface/Core/X86Tables/X86Tables.h" #include "Interface/Context/Context.h" +#include "Interface/IR/IREmitter.h" #include #include #include #include #include -#include #include #include diff --git a/FEXCore/Source/Interface/Core/OpcodeDispatcher/Crypto.cpp b/FEXCore/Source/Interface/Core/OpcodeDispatcher/Crypto.cpp index eb245f81e7..dafc5fa5de 100644 --- a/FEXCore/Source/Interface/Core/OpcodeDispatcher/Crypto.cpp +++ b/FEXCore/Source/Interface/Core/OpcodeDispatcher/Crypto.cpp @@ -8,7 +8,6 @@ desc: Handles x86/64 Crypto instructions to IR #include "Interface/Core/X86Tables/X86Tables.h" -#include #include #include "Interface/Core/OpcodeDispatcher.h" diff --git a/FEXCore/Source/Interface/Core/OpcodeDispatcher/X87.cpp b/FEXCore/Source/Interface/Core/OpcodeDispatcher/X87.cpp index 80c3658aab..39a0871416 100644 --- a/FEXCore/Source/Interface/Core/OpcodeDispatcher/X87.cpp +++ b/FEXCore/Source/Interface/Core/OpcodeDispatcher/X87.cpp @@ -14,7 +14,6 @@ desc: Handles x86/64 x87 to IR #include #include #include -#include #include #include diff --git a/FEXCore/Source/Interface/Core/OpcodeDispatcher/X87F64.cpp b/FEXCore/Source/Interface/Core/OpcodeDispatcher/X87F64.cpp index c9df68aa5f..5f758027ea 100644 --- a/FEXCore/Source/Interface/Core/OpcodeDispatcher/X87F64.cpp +++ b/FEXCore/Source/Interface/Core/OpcodeDispatcher/X87F64.cpp @@ -13,7 +13,6 @@ desc: Handles x86/64 x87 to IR #include #include #include -#include #include #include diff --git a/FEXCore/Source/Interface/HLE/Thunks/Thunks.cpp b/FEXCore/Source/Interface/HLE/Thunks/Thunks.cpp index 185e112d63..9fcdb2a6a3 100644 --- a/FEXCore/Source/Interface/HLE/Thunks/Thunks.cpp +++ b/FEXCore/Source/Interface/HLE/Thunks/Thunks.cpp @@ -6,12 +6,13 @@ tags: glue|thunks $end_info$ */ +#include "Interface/IR/IREmitter.h" + #include #include #include #include #include -#include #include #include #include diff --git a/FEXCore/Source/Interface/IR/IREmitter.cpp b/FEXCore/Source/Interface/IR/IREmitter.cpp index 27d4f2404c..d811ce4acf 100644 --- a/FEXCore/Source/Interface/IR/IREmitter.cpp +++ b/FEXCore/Source/Interface/IR/IREmitter.cpp @@ -6,8 +6,9 @@ tags: ir|emitter $end_info$ */ +#include "Interface/IR/IREmitter.h" + #include -#include #include #include #include diff --git a/FEXCore/include/FEXCore/IR/IREmitter.h b/FEXCore/Source/Interface/IR/IREmitter.h similarity index 100% rename from FEXCore/include/FEXCore/IR/IREmitter.h rename to FEXCore/Source/Interface/IR/IREmitter.h diff --git a/FEXCore/Source/Interface/IR/IRParser.cpp b/FEXCore/Source/Interface/IR/IRParser.cpp index 8dfd9c0373..7b450834ee 100644 --- a/FEXCore/Source/Interface/IR/IRParser.cpp +++ b/FEXCore/Source/Interface/IR/IRParser.cpp @@ -6,9 +6,9 @@ tags: ir|parser $end_info$ */ +#include "Interface/IR/IREmitter.h" #include #include -#include #include #include #include diff --git a/FEXCore/Source/Interface/IR/Passes/ConstProp.cpp b/FEXCore/Source/Interface/IR/Passes/ConstProp.cpp index 18cdf9fd10..af4cba631f 100644 --- a/FEXCore/Source/Interface/IR/Passes/ConstProp.cpp +++ b/FEXCore/Source/Interface/IR/Passes/ConstProp.cpp @@ -13,10 +13,10 @@ desc: ConstProp, ZExt elim, addressgen coalesce, const pooling, fcmp reduction, #include "aarch64/disasm-aarch64.h" #include "aarch64/assembler-aarch64.h" +#include "Interface/IR/IREmitter.h" #include "Interface/IR/PassManager.h" #include -#include #include #include #include diff --git a/FEXCore/Source/Interface/IR/Passes/DeadCodeElimination.cpp b/FEXCore/Source/Interface/IR/Passes/DeadCodeElimination.cpp index 0633736652..28ee963c14 100644 --- a/FEXCore/Source/Interface/IR/Passes/DeadCodeElimination.cpp +++ b/FEXCore/Source/Interface/IR/Passes/DeadCodeElimination.cpp @@ -5,10 +5,10 @@ tags: ir|opts $end_info$ */ +#include "Interface/IR/IREmitter.h" #include "Interface/IR/PassManager.h" #include -#include #include #include diff --git a/FEXCore/Source/Interface/IR/Passes/DeadContextStoreElimination.cpp b/FEXCore/Source/Interface/IR/Passes/DeadContextStoreElimination.cpp index 071ab33fdb..d0abe0eb82 100644 --- a/FEXCore/Source/Interface/IR/Passes/DeadContextStoreElimination.cpp +++ b/FEXCore/Source/Interface/IR/Passes/DeadContextStoreElimination.cpp @@ -6,12 +6,12 @@ desc: Transforms ContextLoad/Store to temporaries, similar to mem2reg $end_info$ */ +#include "Interface/IR/IREmitter.h" #include "Interface/IR/Passes.h" #include "Interface/IR/PassManager.h" #include #include -#include #include #include #include diff --git a/FEXCore/Source/Interface/IR/Passes/DeadStoreElimination.cpp b/FEXCore/Source/Interface/IR/Passes/DeadStoreElimination.cpp index d57c5979c2..beee2b5bc4 100644 --- a/FEXCore/Source/Interface/IR/Passes/DeadStoreElimination.cpp +++ b/FEXCore/Source/Interface/IR/Passes/DeadStoreElimination.cpp @@ -6,11 +6,11 @@ desc: Cross block store-after-store elimination $end_info$ */ +#include "Interface/IR/IREmitter.h" #include "Interface/IR/PassManager.h" #include #include -#include #include #include #include diff --git a/FEXCore/Source/Interface/IR/Passes/IRCompaction.cpp b/FEXCore/Source/Interface/IR/Passes/IRCompaction.cpp index 556876cbf5..79ae90c7cb 100644 --- a/FEXCore/Source/Interface/IR/Passes/IRCompaction.cpp +++ b/FEXCore/Source/Interface/IR/Passes/IRCompaction.cpp @@ -6,11 +6,11 @@ desc: Sorts the ssa storage in memory, needed for RA and others $end_info$ */ +#include "Interface/IR/IREmitter.h" #include "Interface/IR/PassManager.h" #include "Interface/Core/OpcodeDispatcher.h" #include -#include #include #include #include diff --git a/FEXCore/Source/Interface/IR/Passes/IRDumperPass.cpp b/FEXCore/Source/Interface/IR/Passes/IRDumperPass.cpp index 124ff4f7a7..e3f8c2d2fd 100644 --- a/FEXCore/Source/Interface/IR/Passes/IRDumperPass.cpp +++ b/FEXCore/Source/Interface/IR/Passes/IRDumperPass.cpp @@ -7,6 +7,7 @@ desc: Prints IR */ #include "Interface/IR/IR.h" +#include "Interface/IR/IREmitter.h" #include "Interface/IR/PassManager.h" #include "Interface/IR/Passes/RegisterAllocationPass.h" #include "Interface/Core/OpcodeDispatcher.h" diff --git a/FEXCore/Source/Interface/IR/Passes/IRValidation.cpp b/FEXCore/Source/Interface/IR/Passes/IRValidation.cpp index 2773c51baa..655b0a96c0 100644 --- a/FEXCore/Source/Interface/IR/Passes/IRValidation.cpp +++ b/FEXCore/Source/Interface/IR/Passes/IRValidation.cpp @@ -7,12 +7,12 @@ desc: Sanity checking pass */ #include "Interface/IR/IR.h" +#include "Interface/IR/IREmitter.h" #include "Interface/IR/PassManager.h" #include "Interface/IR/Passes/IRValidation.h" #include "Interface/IR/Passes/RegisterAllocationPass.h" #include -#include #include #include #include diff --git a/FEXCore/Source/Interface/IR/Passes/InlineCallOptimization.cpp b/FEXCore/Source/Interface/IR/Passes/InlineCallOptimization.cpp index 4600dff4a3..8aef6ccc0c 100644 --- a/FEXCore/Source/Interface/IR/Passes/InlineCallOptimization.cpp +++ b/FEXCore/Source/Interface/IR/Passes/InlineCallOptimization.cpp @@ -7,10 +7,10 @@ desc: Removes unused arguments if known syscall number */ #include "Interface/Core/CPUID.h" +#include "Interface/IR/IREmitter.h" #include "Interface/IR/PassManager.h" #include -#include #include #include #include diff --git a/FEXCore/Source/Interface/IR/Passes/LongDivideRemovalPass.cpp b/FEXCore/Source/Interface/IR/Passes/LongDivideRemovalPass.cpp index 87b94a0b9e..00a3c446bd 100644 --- a/FEXCore/Source/Interface/IR/Passes/LongDivideRemovalPass.cpp +++ b/FEXCore/Source/Interface/IR/Passes/LongDivideRemovalPass.cpp @@ -6,9 +6,9 @@ desc: Long divide elimination pass $end_info$ */ +#include "Interface/IR/IREmitter.h" #include "Interface/IR/PassManager.h" #include -#include #include #include diff --git a/FEXCore/Source/Interface/IR/Passes/RAValidation.cpp b/FEXCore/Source/Interface/IR/Passes/RAValidation.cpp index f61bdaf24b..f506d6c619 100644 --- a/FEXCore/Source/Interface/IR/Passes/RAValidation.cpp +++ b/FEXCore/Source/Interface/IR/Passes/RAValidation.cpp @@ -1,12 +1,12 @@ // SPDX-License-Identifier: MIT #include "Interface/IR/IR.h" +#include "Interface/IR/IREmitter.h" #include "Interface/IR/PassManager.h" #include "Interface/IR/Passes/IRValidation.h" #include "Interface/IR/Passes/RegisterAllocationPass.h" #include -#include #include #include #include diff --git a/FEXCore/Source/Interface/IR/Passes/RedundantFlagCalculationElimination.cpp b/FEXCore/Source/Interface/IR/Passes/RedundantFlagCalculationElimination.cpp index 06ec3fd47c..45d65af8ca 100644 --- a/FEXCore/Source/Interface/IR/Passes/RedundantFlagCalculationElimination.cpp +++ b/FEXCore/Source/Interface/IR/Passes/RedundantFlagCalculationElimination.cpp @@ -6,8 +6,9 @@ desc: This is not used right now, possibly broken $end_info$ */ +#include "Interface/IR/IREmitter.h" + #include -#include #include #include diff --git a/FEXCore/Source/Interface/IR/Passes/RegisterAllocationPass.cpp b/FEXCore/Source/Interface/IR/Passes/RegisterAllocationPass.cpp index 5a993af22a..8df0fdb460 100644 --- a/FEXCore/Source/Interface/IR/Passes/RegisterAllocationPass.cpp +++ b/FEXCore/Source/Interface/IR/Passes/RegisterAllocationPass.cpp @@ -7,10 +7,10 @@ tags: ir|opts #include "Interface/IR/Passes/RegisterAllocationPass.h" #include "FEXCore/Core/X86Enums.h" +#include "Interface/IR/IREmitter.h" #include "Interface/IR/Passes.h" #include #include -#include #include #include #include diff --git a/FEXCore/Source/Interface/IR/Passes/ValueDominanceValidation.cpp b/FEXCore/Source/Interface/IR/Passes/ValueDominanceValidation.cpp index d7fc4709cb..39f83e8fe0 100644 --- a/FEXCore/Source/Interface/IR/Passes/ValueDominanceValidation.cpp +++ b/FEXCore/Source/Interface/IR/Passes/ValueDominanceValidation.cpp @@ -7,10 +7,10 @@ desc: Sanity Checking */ #include "Interface/IR/IR.h" +#include "Interface/IR/IREmitter.h" #include "Interface/IR/PassManager.h" #include -#include #include #include #include