cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
definelicht
Adventurer
Adventurer
369 Views
Registered: ‎02-16-2017

#pragma INLINE off is ignored

After changing from SDAccel to Vitis 2019.2, the HLS tool inlines functions in my dataflow region, such that they do not get instantiated as processing elements. Specifying #pragma HLS inline off is ignored by the compiler.

 

Relevant dataflow region is here:

https://github.com/spcl/gemm_hls/blob/master/kernel/Compute.cpp#L335

 

Relevant function is here:

https://github.com/spcl/gemm_hls/blob/vitis/kernel/Compute.cpp#L14

 

Does anyone know what could cause this problem? Is there some particular aspect of the processing element that causes the compiler to ignore the inline off pragma? Can I disable implicit inlining globally?

Tags (1)
0 Kudos
2 Replies
hongh
Moderator
Moderator
325 Views
Registered: ‎11-04-2010

Please check whether there is other message about the function is inlined and what's the detailed message about inline directive is ignored.

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
definelicht
Adventurer
Adventurer
299 Views
Registered: ‎02-16-2017

There's no explicit mention of the pragma in the log, just that the function is being inlined:

INFO: [HLS 214-131] Inlining function 'ProcessingElement(hls::stream<hlslib::DataPack<float, 1>, 0>&, hls::stream<hlslib::DataPack<float, 1>, 0>&, hls::stream<hlslib::DataPack<float, 4>, 0>&, hls::stream<hlslib::DataPack<float, 4>, 0>&, hls::stream<hlslib::DataPack<float, 4>, 0>&, hls::stream<hlslib::DataPack<float, 4>, 0>&, unsigned int, unsigned int, unsigned int, unsigned int)' into 'MatrixMultiplicationKernel' (kernel/Top.cpp:115:2)

So no hint from the compiler why it's being ignored :-/

0 Kudos