Uploaded image for project: 'Embedded Software & Tools'
  1. Embedded Software & Tools
  2. EXT_EP-11767

Unaligned vector accessor may lead to abnormal optimizer termination

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Medium Medium
    • Code Generation Tools
    • CODEGEN-12473
    • Hide
      C7000_3.1.0.LTS
      C7000_4.1.0.LTS
      Show
      C7000_3.1.0.LTS C7000_4.1.0.LTS
    • Hide
      C7000_5.0.0.LTS*
      C7000_3.1.3.LTS*
      C7000_4.1.1.LTS
      Show
      C7000_5.0.0.LTS* C7000_3.1.3.LTS* C7000_4.1.1.LTS
    • default
    • In the case where the optimizer has to unroll to find out the index is a constant integer, use "#pragma UNROLL(1)" to prevent unrolling.

      The optimizer can crash when trying to access part of a vector by taking the address of a vector accessor expression (.s[]) with an index that is unaligned relative to the size of the pointer access. For example, given "_uchar64 v", trying to access (*(uchar4 *)&v.s[1]) can cause the optimizer to abort with an internal error. This internal error can arise even if the index is an expression, if the optimizer can optimize the code and discover that the expression is unaligned. For example, the optimizer could fully unroll "for (i=0;i<16;i++) *(_uchar4 *)&v.s[i] = ...", yielding 16 statements of the form v.s[0], v.s[1], etc.

            syncuser TI User
            syncuser TI User
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: