Skip to content

Conversation

@eguiraud
Copy link
Contributor

@eguiraud eguiraud commented Aug 18, 2017

This is a breaking interface change: Filter now returns templated
TInterface<TFilter<F,P>> objects instead of TInterface
as before (and anagolously for Define and Range).
Jitted transformations still return TInterfaces wrapping the base
classes (e.g. TFilterBase).

Filter, Define and Range returned TInterfaces wrapping pointers to the
base classes representing the corresponding nodes. This choice was made
to limit compile time and ease the introduction of jitted transformations.
As a consequence, nodes of the functional graph communicated with each
other through virtual calls.

This commit lets nodes call into each other through the derived (template)
types instead. Given that all nodes' virtual methods are marked final,
this should allow compilers to de-virtualize such calls.

Because of the interface change this commit is expected to break test_templateRecursionLimit. A PR to root-project/roottest will deal with this issue (here).

This is a breaking interface change: Filter now returns templated
TInterface<TFilter<F,P>> objects instead of TInterface<TFilterBase>
as before (and anagolously for Define and Range).
Jitted transformations still return TInterfaces wrapping the base
classes (e.g. TFilterBase).

Filter, Define and Range returned TInterfaces wrapping pointers to the
base classes representing the corresponding nodes. This choice was made
to limit compile time and ease the introduction of jitted transformations.
As a consequence, nodes of the functional graph communicated with each
other through virtual calls.

This commit lets nodes call into each other through the derived (template)
types instead. Given that all nodes' virtual methods are marked `final`,
this should allow compilers to de-virtualize such calls.
@phsft-bot
Copy link

Starting build on centos7/gcc49, mac1012/native, slc6/gcc49, slc6/gcc62, ubuntu14/native with flags -Dvc=OFF -Dimt=ON -Dccache=ON
How to customize builds

@phsft-bot
Copy link

@phsft-bot
Copy link

@phsft-bot
Copy link

@phsft-bot
Copy link

@phsft-bot
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants