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

Compiler mistakenly reorders and combines conditional definitions of volatile objects

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Medium Medium
    • Code Generation Tools
    • CODEGEN-6909
    • Hide
      ARM_18.1.0.LTS
       ARM_18.12.0.LTS
      Show
      ARM_18.1.0.LTS  ARM_18.12.0.LTS
    • Hide
      ARM_18.12.5.LTS
       ARM_18.1.8.LTS*
      Show
      ARM_18.12.5.LTS  ARM_18.1.8.LTS*
    • No practical workaround
    • Hide
      The compiler has an optimization where if two otherwise-identical instructions have complementary predicates, the two instructions will be combined into a single unconditional instruction. This is common in compiler-generated sequences. The problem is that the compiler should not do this if the instructions access a volatile object and performing the optimization would reorder the accesses. This is exactly the situation in this test case - the user is trying to control the order of volatile accesses with an if statement.
      Show
      The compiler has an optimization where if two otherwise-identical instructions have complementary predicates, the two instructions will be combined into a single unconditional instruction. This is common in compiler-generated sequences. The problem is that the compiler should not do this if the instructions access a volatile object and performing the optimization would reorder the accesses. This is exactly the situation in this test case - the user is trying to control the order of volatile accesses with an if statement.

      Compiler mistakenly reorders and combines conditional definitions of volatile objects

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

              Created:
              Updated:
              Resolved: