This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Parallel build/ARM compiler performance



There are over 130 .c files I need to compile on a full build. Considering CCS requires me to do a full build every time I restart CCS or add a new file to the project, I have long loathed the process of the full build, as it has thus far taken about a minute and a half each time. (I can literally count the files getting compiled one by one in the console output)

Now I have upgraded to CCS 5.2, and discovered that parallel build is available as an option now. I don't recall seeing it before, for some reason, even though I've spotted google searches showing parallel build going as far back as v4. Maybe it wasn't an option for this compiler until now, or something.

So, naturally, I enabled it. It shaves almost 30 seconds off of the process, and I have it down to 56 seconds now. I can't help but notice several lines in a row, one of each for each of the files that it goes through, that it prints out in bulk at each step, that I think are holding it up.

In other words, my console looks like this, except with dozens of files at a time instead of just 2.

'Building file: c:/bleh/such_and_such.c'

'Building file: c:/bleh/some_other_thing.c'

'Invoking: ARM Compiler'

'Invoking: ARM Compiler'

"C:/ti/ccsv5/tools/compiler/tms470_4.9.5/bin/cl470" --and then it goes on to list each and every one of the switches, include dirs, etc.

"C:/ti/ccsv5/tools/compiler/tms470_4.9.5/bin/cl470" --etc

'Finished building: c:/bleh/such_and_such.c'

'Finished building: c:/bleh/some_other_thing.c'

'' (blank line except for the single quotes)

'' (blank line except for the single quotes)

Each of the lines are printed out at a fairly steady rate, and the build does not proceed to the next batch of files until they are all done printing out. So, I figure this is costing me another 20-30 seconds of time in each build.

Is this massive amount of printing absolutely necessary? Is it the cause of why it still takes so long to complete a build?

Don't take this the wrong way, but I have seen compilers do this same amount of compilation for other processors in about 10 seconds, so I'm just assuming there is something going wrong that I can change a setting to correct. If I can save 20-30 more seconds every time I have to restart CCS or do a full build (once or twice a day), I figure over the next 5 years I'd save 8-12 hours total, so I'd really appreciate any ideas on how to cut this down.

Thanks!

  • dwf said:
    Considering CCS requires me to do a full build every time I restart CCS or add a new file to the project, I have long loathed the process of the full build, as it has thus far taken about a minute and a half each time. (I can literally count the files getting compiled one by one in the console output)

    This sounds like a bug to me. CCS should only build files that have been changed unless the project was cleaned. What CCS version are you using? 5.2.1?

    dwf said:
    Is this massive amount of printing absolutely necessary? Is it the cause of why it still takes so long to complete a build?

    I don't think the messages will have that much of an impact but I will try to get confirmation

    ki

  • dwf said:
    Is this massive amount of printing absolutely necessary? Is it the cause of why it still takes so long to complete a build?

    There is an option under 'Windows->Preferences->Code Composer Studio->Build' where you can adjust the console verbosity options. The default is 'Normal' but there is a setting called 'super quiet' that can cut down the number of messages. You can try that and see if that helps.

    ki

  • Yes, it's 5.2.1. Does CCS automatically clean the project when a new file is added or when the workspace is loaded?


    I can confirm that it saves another 20 seconds if I change the verbosity to super quiet. Thank you!


    There are still several blank lines getting printed out, but full build time is down to 36 seconds now. If there are additional improvements I can do, then full builds might just become unnoticeable.

  • dwf said:
    Does CCS automatically clean the project when a new file is added

    No. It should simply build the new file and try to relink.

    dwf said:
    or when the workspace is loaded?

    If the project was not altered in any way (changing project / build options or touching the source files), then it should not clean when simply loading the workspace. In determining if files need to be rebuilt, CCS checks the timestamps of the object files and the out file. Could something be modifying them? are you working with projects in version control?

    Thanks

    ki

  • Yes, I am using QVCS which sets modified date whenever I get, check out, or check in a file.

  • dwf said:
    Yes, I am using QVCS which sets modified date whenever I get, check out, or check in a file.

    If source file modified date > corresponding object file modified date, that source file will be rebuilt. Are all source files being checked out when you restart CCS to do a build?

  • Nope, typically only a few files are checked out at a time, and the rest are left locked (read only) to prevent unintended changes. The object files themselves are not part of the repo, only the project, the linker file, and the source files.