#include "automemcpy/CodeGen.h" #include "automemcpy/RandomFunctionGenerator.h" #include #include namespace llvm { namespace automemcpy { std::vector generateFunctionDescriptors() { std::unordered_set Seen; std::vector FunctionDescriptors; RandomFunctionGenerator P; while (std::optional MaybeFD = P.next()) { FunctionDescriptor FD = *MaybeFD; if (Seen.count(FD)) // FIXME: Z3 sometimes returns twice the same object. continue; Seen.insert(FD); FunctionDescriptors.push_back(std::move(FD)); } return FunctionDescriptors; } } // namespace automemcpy } // namespace llvm int main(int, char **) { llvm::automemcpy::Serialize(llvm::outs(), llvm::automemcpy::generateFunctionDescriptors()); }