3.6.3.24 SHLS-50

Message

Warning: (SHLS-50) Cannot optimize the loop on {location} to overlap the execution of dataflow region '{function}'.
                   The loop is not in a supported form that only invokes the dataflow region with no additional operations.
/*****************************************************************
 *  This example is expected to result in
 *  - Code  : SHLS-50
 *  - Type  : Warning
 *  - Cause : Failed to optimize the loop from which the dataflow
 *            function is invoked due to non-trivial loop structure.
 *            In this case, the 'bound--;' statement inside the
 *            dataflow function caller for-loop complicates the loop
 *            structure.
 *****************************************************************/      
void df(int &s, int v) {
#pragma HLS function dataflow
    if (s < v)
      s++;
}

void DUT(int data, int v, int bound) {
#pragma HLS function top

    for (int i = 0; i < bound; i++) {
        df(data,v);
        bound--;
    }
}

Related to: Data Flow Parallelism