Currently, AbstractOperation fields are function pointers. Modifying them to unique_function allow them to contain runtime information. For instance, this allows operations to be defined at runtime. Differential Revision: https://reviews.llvm.org/D103031