Remove error-prone mlir::ExecutionEngine::invoke overload.
authorSean Silva <silvasean@google.com>
Wed, 27 May 2020 03:14:34 +0000 (20:14 -0700)
committerSean Silva <silvasean@google.com>
Wed, 27 May 2020 20:26:03 +0000 (13:26 -0700)
commitb2773823116157aa73ea4ac01270b22042d6bb42
tree5c3e5d3be48c871c346defd4dd9f4f66e829c448
parent54b64572407c8305c7bb8cc20c46a5e0c66b2979
Remove error-prone mlir::ExecutionEngine::invoke overload.

I just spent a bunch of time debugging a mysterious bug that ended being due to my SmallVector getting passed to the Args&... overload instead of the MutableArrayRef overload, with disastrous results.

I appreciate the intent of this API, but for a function that does a bunch of unsafe casts, adding in potential overload confusion is just too much C++ footgun. If we end up needing this functionality, having something like a separate `packArgs(Args&...) -> SmallVector` overload would be preferable.

Turns out this API is unused and untested (even out of tree as far as I can tell, modulo the optional passing of no args to the other invoke as I fixed in this patch), so it's an easy fix -- just delete it and touch up the other overload.

Differential Revision: https://reviews.llvm.org/D80607
mlir/include/mlir/ExecutionEngine/ExecutionEngine.h