marvell gcc compiler option, 2009q1-18 release version

2010/07/21
The document describes the command line options of GCC created by Marvell in addition to original options.

2009q1-18 release version

-mcpu=marvell-f

    It's the default setting for CPU selection for Marvell's dual-issue processor.
    Do not specify -mcpu=name or -mtune=name to other processor unless you intend
    to generate code for that target.
[##_kaAmo_##]

    Note that the gcc will pass -mcpu=marvell-f to assembler, so please use the
    assembler from the binutils come with our package.

    Other supported Marvell cpu names are:
        marvell-fv6
        marvell-fv6t2
        marvell-fv7


-mmarvell-div

    Generate hardware integer division instructions supported by some Marvell cores.


-mforce-word-length

    Force the move length to be word unit


-mtry-ldrd-strd

    Use LDRD and STRD instead of LDM and STM as possible


-mtune-prologue-epilogue

    Tune function prologue and epilogue as possible


-mmrvl-min-array-align=

    Use -mmrvl-min-array-align=<number>    to set the minimal array alignment to <number>byte.
    It also set the constant string alignment to double word.


-mmrvl-min-pointer-align

    Set the minimal pointer alignment to be the same as -mmrvl-set-min-array-align.
    This should be used when -mmrvl-min-array-align is set


-mmrvl-tune-mla-cost

    Tune RTX costs to generate MLA insn by Marvell


-mexpand-strcmp

    Expand mrvl built-in strcmp (8-byte alignment version), enabled only when -mmrvl-min-array-align >= 8 is set

-mmrvl-no-ldmpc

    To prevent ldm {pc} instructions in function epilogue, use ldm {lr}; bx lr instead.


i

    Support IWMMXT insns in Marvell processors


-mno-cond-exec

    Do not generate conditional execution instructions for Marvell processors


-mmrvl-use-unsupported-cpu

    Use Marvell unsupported CPU names


-fipa-reguse

    Interprocedural register allocation


-fsimple-ipaa

    Try-run the simple interprocedural argument analysis for &var argument.


-funsafe-rtl-peel-loop

    Try to remove the cmp and bx insn when peeling loops in rtl level


-fforce-unroll-loops

    Try to unroll loops with <= 2 branches inside it


-ftree-vectorize -mmrvl-use-iwmmxt

    Turn on auto vectorization for iwmmxt. (Should be used with -O1, -O2 or -O3)


-ftree-vectorize -mmrvl-use-iwmmxt -ftree-vectorizer-verbose=3 (or 4, 5, 6, 7)

    Turn on auto vectorization for iwmmxt with verbose diagnositc messages. (Should be used with -O1, -O2 or -O3)


-Wcoverage-mismatch

    Warn instead of error in case profiles in -fprofile-use do not match


-fprofile-correction

    Enable correction of flow inconsistent profile data input