Skip to content

[C++] Clarify the way aggregation kernels are generated from the same code in different compilation units #43719

@felipecrv

Description

@felipecrv

Describe the enhancement requested

More than once I've been confused about how the SimdLevel template parameters on these kernel classes affect dispatching of kernels based on SIMD support detection at runtime [1] given that nothing in the code changes based on the parameters.

What matters is the compilation unit in which the templates are instantiated. Different compilation units get different compilation parameters. The SimdLevel parameters don't really affect the code that gets generated (!), they only serve as a way to avoid duplication of symbols in the compiled objects.

I this should be made more explicit in the organization of the code.

[1] #7871 (comment)

Component(s)

C++

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions