Compiler changes between RVCT v3.1 for µVision and RVCT v4.0 for µVision

The following compiler changes have been made:

Show/hideSingle compiler executable

The executables tcc, armcpp and tcpp are no longer delivered.

To compile for Thumb, use the --thumb command-line option.

To compile for C++, use the --cpp command-line option.

Note

The compiler automatically selects C++ for files with the .cpp extension, as before.

Show/hideVAST Changes

VAST has been upgraded through two versions (VAST 11 for 4.0 Alpha and 4.0 Alpha2 and later). Apart from the following issue, you do not have to make any changes to your v3.1 builds to use the new VAST.

RVCT v3.1 for µVision reassociated saturating ALU operations. This meant programs like the following could produce different results with --vectorize and --no_vectorize:

int g_448464(short *a, short *b, int n)
{
    int i; short s = 0;
    for (i = 0; i < n; i++)  s = L_mac(s, a[i], b[i]);
    return s;
}

In RVCT v4.0 for µVision, you might see a performance degradation because of this issue.

The --reassociate_saturation and --no_reassociate_saturation command-line options have been added to permit reassociation to occur.

Show/hideSee also

Copyright © 2011-2012 ARM. All rights reserved.ARM DUI 0593B
Non-ConfidentialID062912