Changes between Initial Version and Version 1 of Ticket #3921, comment 13


Ignore:
Timestamp:
2020-03-04T10:37:49Z (5 years ago)
Author:
Karim Adbdelhak

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #3921, comment 13

    initial v1  
    11Unfortunately this is still way harder as expected. Here are some small details on why:
    22
    3 - The initialization system gets analyzed before the simulation system has its post-optimization phase (where wrapFunctionCall takes place). So in order to pass information from the simulation wrapFunctionCalls to the initialization we would need to reverse this.
    4 - Initialization produces information the simulation system depends on, or at least structurally it is build that way. Therefore reversal of the pipeline is not really easy.
     3- The initialization system gets analyzed before the simulation system has its post-optimization phase (where {{{wrapFunctionCall}}} takes place). So in order to pass information from the simulation {{{wrapFunctionCalls}}} to the initialization we would need to reverse this.
     4- Initialization produces information the simulation system depends on, or at least structurally it is built that way. Therefore reversal of the pipeline is not really easy.
    55- Some information from the initial system is discarded after it is created to not contradict information from the simulation system and confuse code generation (mostly stuff about known variables). This really needs to be changed, discarding information seems bad. This also results in the artificial dependency of the systems and forces the simulation system to be post optimized after the initial system, they should be independent)
    6 - One could think that we could apply wrapFunctionCalls on the initial system and instead pass information to the simulation system, but this also does not always work, because some necessary information gets discarded, as i just mentioned (this is also the original reason it does not work in general for the initial system).
     6- One could think that we could apply {{{wrapFunctionCalls}}} on the initial system and instead pass information to the simulation system, but this also does not always work, because some necessary information gets discarded, as i just mentioned (this is also the original reason it does not work in general for the initial system).
    77
    88All of this comes from the assumption that both systems have to have the same variables and are tried to be kept in sync. This directly results from the fact the both systems have their own vector of variables, which we should change.