Support ONNX overloaded functions (IR version 10+) (#28275)
Add support for the overload field in FunctionProto and NodeProto, as
specified in ONNX IR version 10. Functions are now uniquely identified
by the triple (domain, name, overload) instead of just (domain, name).
Changes:
- function_utils.h: GetFunctionIdentifier accepts optional overload
param
- function_utils.cc: CreateSchema takes overload for correct lookup
- graph.h: Node class gains overload_ member, Overload()/SetOverload()
- graph.cc: Store overload from NodeProto, serialize in ToProto, copy on
AddNode, use overload in function resolution
- model.cc: Include overload in all function map keys
- graph_partitioner.cc: Include overload in not-inlined function
tracking
- function_test.cc: Add tests for overloaded and backward-compatible
cases
### Description
Support overloaded model-local functions as per ONNX spec.
### Motivation and Context
Support ONNX spec.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>