[ORC][ORC-RT] Add SimplePackedSerialization support for optionals.
authorLang Hames <lhames@gmail.com>
Fri, 23 Dec 2022 01:22:58 +0000 (17:22 -0800)
committerLang Hames <lhames@gmail.com>
Fri, 23 Dec 2022 01:37:32 +0000 (17:37 -0800)
commita0a51a805fdbe9d6a0f87d3746c39111d95cfb8b
tree697101198813dc0ba3631c0bd6c4fb29bda41457
parent988733c60037c61ca49233c356c0f928a5ac14bb
[ORC][ORC-RT] Add SimplePackedSerialization support for optionals.

This allows optionals to be serialized and deserialized, and used as arguments
and return values in SPS wrapper functions.

Serialization of optional values is indicated by use of the SPSOptional tag.
SPSOptionals are serialized serialized as a bool (false for no value, true for
value) plus the serialization of the contained value if any. Serialization
to/from std::optional is included in this commit.

This commit includes updates to SimplePackedSerialization in both ORC and the
ORC runtime.

, std::optional serialization.
compiler-rt/lib/orc/simple_packed_serialization.h
compiler-rt/lib/orc/tests/unit/simple_packed_serialization_test.cpp
llvm/include/llvm/ExecutionEngine/Orc/Shared/SimplePackedSerialization.h
llvm/unittests/ExecutionEngine/Orc/SimplePackedSerializationTest.cpp