Keil™, An ARM® Company

RealView Compiler Reference Guide

Technical Support

On-Line Manuals

RealView Compiler Reference Guide

Preface
Introduction
Compiler Command-line Options
Command-line options
‑Aopt
‑‑[no_]alternative_tokens
‑‑[no_]anachronisms
--apcs=qualifer...qualifier
‑‑arm
‑‑asm
‑‑[no_]autoinline
‑‑bigend
‑‑[no_]brief_diagnostics
--bss_threshold=num
‑c
‑C
‑‑c90
‑‑c99
‑‑[no_]code_gen
--[no_]compile_all_input
‑‑cpp
‑‑create_pch=filename
‑Dname[(parm-list)][=def]
‑‑[no_]data_reorder
‑‑[no_]debug
‑‑[no_]debug_macros
‑‑default_extension=ext
‑‑[no_]dep_name
‑‑depend=filename
‑‑depend_format=string
--[no_]depend_system_headers
‑‑device=list
--device=name
--device_opt=option
‑‑diag_error=tag[,tag,...]
‑‑diag_remark=tag[,tag,... ]
‑‑diag_style={arm|ide|gnu}
‑‑diag_suppress=tag[,tag,...]
--diag_suppress=optimizations
‑‑diag_warning=tag[,tag,...]
--diag_warning=optimizations
‑‑[no_]dollar
‑‑dwarf2
‑‑dwarf3
‑E
‑‑enum_is_int
‑‑errors=filename
‑‑[no_]exceptions
‑‑[no_]exceptions_unwind
‑‑[no_]export_all_vtbl
‑‑[no_]export_defs_implicitly
--[no_]extended_initializers
‑‑feedback=filename
--[no_]force_new_nothrow
‑‑forceinline
‑‑fpmode=model
‑‑fpu=list
‑‑fpu=name
‑‑[no_]friend_injection
‑‑gnu
‑‑[no_]guiding_decls
‑‑help
‑‑[no_]hide_all
‑Idir[,dir,...]
‑‑[no_]implicit_include
--[no_]implicit_include_searches
‑‑[no_]implicit_typename
‑‑info=totals
‑‑[no_]inline
‑‑interleave
‑Jdir[,dir,...]
‑‑kandr_include
‑Lopt
‑‑library_interface=lib
--library_type=lib
‑‑list
‑‑littleend
‑‑locale=lang_country
‑‑loose_implicit_cast
‑‑[no_]lower_ropi
‑‑[no_]lower_rwpi
‑M
‑‑md
‑‑message_locale=lang_country[.codepage]
‑‑min_array_alignment=opt
‑‑[no_]multibyte_chars
‑‑[no_]multifile
‑‑[no_]nonstd_qualifier_deduction
‑o filename
‑Onum
‑‑[no_]old_specializations
-‑omf_browse
‑Ospace
‑Otime
‑‑[no_]parse_templates
‑‑pch
‑‑pch_dir=dir
‑‑[no_]pch_messages
‑‑[no_]pch_verbose
‑‑pending_instantiations=n
‑‑pointer_alignment=num
--[no_]project=filename
‑‑preinclude=filename
--[no_]reduce_paths
--reinitialize_workdir
‑‑remarks
‑‑[no_]restrict
‑‑[no_]rtti
‑S
‑‑[un]signed_bitfields
‑‑[un]signed_chars
‑‑show_cmdline
‑‑split_ldm
‑‑split_sections
‑‑[no_]strict
‑‑strict_warnings
‑‑sys_include
‑‑thumb
‑Uname
‑‑[no_]unaligned_access
‑‑use_pch=filename
‑‑[no_]using_std
‑‑[no_]vfe
‑‑via=filename
--[no_]vla
‑‑vsn
‑W
--wchar16
--wchar32
--workdir=directory
‑‑[no_]wrap_diagnostics
Language Extensions
Compiler-specific Features
C and C++ Implementation Details
Via File Syntax
Standard C Implementation Definition
Standard C++ Implementation Definition
C and C++ Compiler Implementation Limits

‑‑feedback=filename

2.1.49. ‑‑feedback=filename

This option enables the efficient elimination of unused functions.

Syntax

--feedback=filename

Where:

filename

is the feedback file created by a previous execution of the ARM linker.

Usage

You can perform multiple compilations using the same feedback file, or specify multiple source files in a single compilation. The feedback file identifies the source file that contains the unused functions in a comment, and is not used by the compiler. The compiler places each unused function identified in the feedback file into its own section in the corresponding object file.

The feedback file contains information about a previous build. Because of this:

  • The feedback file might be out of date. That is, a function previously identified as being unused might be used in the current source. The linker removes the code for an unused function only if it is not used in the current source.

    Note

    For this reason, linker feedback is a safe optimization, but there might be a small impact on code size.

  • You have to do a full compile and link at least twice to get the maximum benefit from linker feedback. However, a single compile and link using feedback from a previous build is usually sufficient.

See also

Copyright © 2007 ARM Limited. All rights reserved.ARM DUI 0376A