Before this change, lists of LLVM overrides (e.g., declare_overrides) consisted of libc and LLVM-specific overrides grouped together. Because of the difficulties surrounding "polymorphic" LLVM overrides, they were also only available as OverrideTemplates, which are necessarily dynamic (i.e., are essentially monadic actions in OverrideSim that register the override in question, rather than a data structure describing the override).
Macaw-based Crucible frontends might want to reuse the libc overrides in the context of binaries. This commit separates them out and lists them purely as SomeLLVMOverrides, facilitating this reuse.
Before this change, lists of LLVM overrides (e.g.,
declare_overrides
) consisted of libc and LLVM-specific overrides grouped together. Because of the difficulties surrounding "polymorphic" LLVM overrides, they were also only available asOverrideTemplate
s, which are necessarily dynamic (i.e., are essentially monadic actions inOverrideSim
that register the override in question, rather than a data structure describing the override).Macaw-based Crucible frontends might want to reuse the libc overrides in the context of binaries. This commit separates them out and lists them purely as
SomeLLVMOverride
s, facilitating this reuse.