ArBB compiler error

ArBB compiler error

Have boiled it down to this captured function:

void fubar(dense &Foo, const dense &Bar)
{
f32 test = 1.f;
f32 level = 0.001f;
_do {
... misc., or nothing!
}
_until (test < level);
Foo = Bar;
}

It doesn't get much simplier than that!

Good luck,
- paul

publicaciones de 7 / 0 nuevos
Último envío
Para obtener más información sobre las optimizaciones del compilador, consulte el aviso sobre la optimización.
Imagen de AmandaS (Intel)

Thanks! We're checking into it.--Amanda

BTW, have tried "for"s and "while"s too but cannot seem to get any to workwith a test based on comparing floating point values.

Has anybody had success with this?

- paul

Imagen de Zhang Z (Intel)

Paul,

I tried several scenarios and these are my findings:

  1. It fails if the loop body is empty.

    _do {
    // Nothing.
    } _until (test < level);

  2. This also fails probably because the loop body gets optimized away by JIT.

    _do {
    test = level;
    } _until (test < level);

  3. But this works fine.

    _do {
    test -= level;
    } _until (test < level);

The problem is not related to comparison of floating point values. It is more likely an issue with the ArBB control flows. Thanks for reporting this problem. We will have it addressed. But at the same time, please try to code your loop body in different ways. You may be able to find a way that works.

Zhang

Thank you, Zhang. I did keep experimenting and now have a "while" loop that works.
- paul

While we're on the subject of control flow, I keep bumping up against the need for a "_return;" and/or "_return(val);" macro.
- paul

Hi Paul,

Thank you for your suggestion. We (re-)evaluate to include _return in a future release of Intel ArBB. A feature request will keep this in our backlog. Note, it might be a good design to aim for a single point of exit within a function, but we understand that leaving nested loops using multiple _break statements or similar situations might ask for a _return syntax.

Hans

Inicie sesión para dejar un comentario.