ir/value: Replace includes with forward declarations

enum classes are still considered complete types when forward declared
(as the compiler knows the exact size of the type from the declaration
alone). The only difference in this case being that the members of the
enum class aren't visible. Given we don't use the members within this
header in any way, we can simply forward declare them here and remove
the inclusions.
This commit is contained in:
Lioncash 2018-09-08 20:03:45 -04:00 committed by MerryMage
parent 2c8e07e7d0
commit 134bb02e19
5 changed files with 15 additions and 3 deletions

View file

@ -10,14 +10,22 @@
#include "common/assert.h" #include "common/assert.h"
#include "common/common_types.h" #include "common/common_types.h"
#include "frontend/A32/types.h"
#include "frontend/A64/types.h"
#include "frontend/ir/cond.h"
#include "frontend/ir/type.h" #include "frontend/ir/type.h"
namespace Dynarmic::A32 {
enum class ExtReg;
enum class Reg;
}
namespace Dynarmic::A64 {
enum class Reg;
enum class Vec;
}
namespace Dynarmic::IR { namespace Dynarmic::IR {
class Inst; class Inst;
enum class Cond;
/** /**
* A representation of a value in the IR. * A representation of a value in the IR.

View file

@ -8,6 +8,7 @@
#include "common/assert.h" #include "common/assert.h"
#include "common/common_types.h" #include "common/common_types.h"
#include "frontend/A32/types.h"
#include "frontend/ir/basic_block.h" #include "frontend/ir/basic_block.h"
#include "frontend/ir/opcodes.h" #include "frontend/ir/opcodes.h"
#include "frontend/ir/value.h" #include "frontend/ir/value.h"

View file

@ -8,6 +8,7 @@
#include "common/assert.h" #include "common/assert.h"
#include "common/common_types.h" #include "common/common_types.h"
#include "frontend/A64/types.h"
#include "frontend/ir/basic_block.h" #include "frontend/ir/basic_block.h"
#include "frontend/ir/ir_emitter.h" #include "frontend/ir/ir_emitter.h"
#include "frontend/ir/opcodes.h" #include "frontend/ir/opcodes.h"

View file

@ -25,6 +25,7 @@
#include "frontend/A32/location_descriptor.h" #include "frontend/A32/location_descriptor.h"
#include "frontend/A32/PSR.h" #include "frontend/A32/PSR.h"
#include "frontend/A32/translate/translate.h" #include "frontend/A32/translate/translate.h"
#include "frontend/A32/types.h"
#include "frontend/ir/basic_block.h" #include "frontend/ir/basic_block.h"
#include "frontend/ir/location_descriptor.h" #include "frontend/ir/location_descriptor.h"
#include "ir_opt/passes.h" #include "ir_opt/passes.h"

View file

@ -19,6 +19,7 @@
#include "frontend/A64/decoder/a64.h" #include "frontend/A64/decoder/a64.h"
#include "frontend/A64/location_descriptor.h" #include "frontend/A64/location_descriptor.h"
#include "frontend/A64/translate/translate.h" #include "frontend/A64/translate/translate.h"
#include "frontend/A64/types.h"
#include "frontend/ir/basic_block.h" #include "frontend/ir/basic_block.h"
#include "frontend/ir/opcodes.h" #include "frontend/ir/opcodes.h"
#include "fuzz_util.h" #include "fuzz_util.h"