6 #include <gtest/gtest.h>
14 TEST(TypeTests, TestIsOrContains)
24 EXPECT_TRUE(IsOrContains<PointerType>(*pointerType));
25 EXPECT_FALSE(IsOrContains<PointerType>(*memoryStateType));
26 EXPECT_FALSE(IsOrContains<PointerType>(*ioStateType));
38 EXPECT_TRUE(IsOrContains<jlm::rvsdg::FunctionType>(*functionType));
39 EXPECT_FALSE(IsOrContains<PointerType>(*functionType));
45 EXPECT_TRUE(IsOrContains<StructType>(*structType));
46 EXPECT_TRUE(IsOrContains<PointerType>(*structType));
52 EXPECT_TRUE(IsOrContains<ArrayType>(*arrayType));
53 EXPECT_TRUE(IsOrContains<StructType>(*arrayType));
54 EXPECT_TRUE(IsOrContains<PointerType>(*arrayType));
61 EXPECT_TRUE(IsOrContains<VectorType>(*vectorType));
62 EXPECT_TRUE(IsOrContains<StructType>(*vectorType));
63 EXPECT_TRUE(IsOrContains<PointerType>(*vectorType));
67 TEST(TypeTests, TestGetTypeSizeAndAlignment)
96 unsigned int expectedArrayStoreSize = 4 * 5;
97 unsigned int expectedArrayAllocAize = 4 * 5;
117 EXPECT_EQ(structType->GetFieldOffset(0), 0u);
118 EXPECT_EQ(structType->GetFieldOffset(1), 8u);
119 EXPECT_EQ(structType->GetFieldOffset(2), 16u);
120 EXPECT_EQ(structType->GetFieldOffset(3), 48u);
121 EXPECT_EQ(structType->GetFieldOffset(4), 64u);
134 EXPECT_EQ(packedStructType->GetFieldOffset(0), 0u);
135 EXPECT_EQ(packedStructType->GetFieldOffset(1), 4u);
136 EXPECT_EQ(packedStructType->GetFieldOffset(2), 12u);
137 EXPECT_EQ(packedStructType->GetFieldOffset(3), 32u);
138 EXPECT_EQ(packedStructType->GetFieldOffset(4), 48u);
TEST(TypeTests, TestIsOrContains)
static std::shared_ptr< const ArrayType > Create(std::shared_ptr< const Type > type, size_t nelements)
static std::shared_ptr< const FixedVectorType > Create(std::shared_ptr< const rvsdg::Type > type, size_t size)
static std::shared_ptr< const FloatingPointType > Create(fpsize size)
static std::shared_ptr< const IOStateType > Create()
static std::shared_ptr< const MemoryStateType > Create()
static std::shared_ptr< const PointerType > Create()
static std::shared_ptr< const StructType > CreateIdentified(const std::string &name, std::vector< std::shared_ptr< const Type >> types, bool isPacked)
static std::shared_ptr< const BitType > Create(std::size_t nbits)
Creates bit type of specified width.
static std::shared_ptr< const FunctionType > Create(std::vector< std::shared_ptr< const jlm::rvsdg::Type >> argumentTypes, std::vector< std::shared_ptr< const jlm::rvsdg::Type >> resultTypes)
static std::shared_ptr< const TestType > createValueType()
Global memory state passed between functions.
size_t GetTypeAlignment(const rvsdg::Type &type)
size_t GetTypeAllocSize(const rvsdg::Type &type)
size_t GetTypeStoreSize(const rvsdg::Type &type)
bool IsAggregateType(const jlm::rvsdg::Type &type)
@ State
Designate a state type.
@ Value
Designate a value type.