Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-76025 Specify the QML language and write a QML-to-C++ compiler
  3. QTBUG-119348

Allow std::move'ing registers between different basic blocks

    XMLWordPrintable

Details

    • Technical task
    • Resolution: Unresolved
    • P2: Important
    • 6.9
    • QML: Compiler
    • None

    Description

      Currently, the C++ code generated by qmlcachegen and qmlsc will only std::move() from a register if it has been populated in the same basic block as it consumed. This is because otherwise it may be read multiple times via a loop. However, there are control flow constructs where this definitely cannot happen, for example if the register is populated in a piece of linear code before a loop and consumed in another piece of linear code after a loop. We should be able to identify such cases.

      Coverity is complaining about the potential std::move's we're missing out on in generated code.

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              qtqmlteam Qt Qml Team User
              ulherman Ulf Hermann
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes