Electronic Components Datasheet Search
  New Zealand  ▼
ALLDATASHEET.CO.NZ

X  

AN3350 Datasheet(PDF) 113 Page - STMicroelectronics

Part # AN3350
Description  eTPU compiler tools
PDF  185 Pages
Scroll/Zoom Zoom In 100%  Zoom Out
Manufacturer  STMICROELECTRONICS [STMicroelectronics]
Direct Link  http://www.st.com
Logo STMICROELECTRONICS - STMicroelectronics

AN3350 Datasheet(HTML) 113 Page - STMicroelectronics

Back Button AN3350 Datasheet HTML 109Page - STMicroelectronics AN3350 Datasheet HTML 110Page - STMicroelectronics AN3350 Datasheet HTML 111Page - STMicroelectronics AN3350 Datasheet HTML 112Page - STMicroelectronics AN3350 Datasheet HTML 113Page - STMicroelectronics AN3350 Datasheet HTML 114Page - STMicroelectronics AN3350 Datasheet HTML 115Page - STMicroelectronics AN3350 Datasheet HTML 116Page - STMicroelectronics AN3350 Datasheet HTML 117Page - STMicroelectronics Next Button
Zoom Inzoom in Zoom Outzoom out
 113 / 185 page
background image
AN3350
Intermediate optimizations
Doc ID 018512 Rev 2
113/185
#pragma dont_inline off
/* Will be inlined, if possible. */
inline int also_attempt_to_inline(void)
{
return 10;
}
Some kinds of functions are never inlined:
●
Functions with variable argument lists
●
Functions defined with __attribute__((never_inline))
●
Functions compiled with #pragma optimize_for_size on or the Optimize For
Size setting in the IDE’s Global Optimizations panel
●
Functions which have their addresses stored in variables
The compiler will not inline these functions, even if they are defined with the inline,
__inline__
, or __inline keywords.
13.2.2
Inlining techniques
The depth of inlining explains how many levels of function calls the compiler will inline. The
Inline Depth setting in the IDE’s C/C++ Language settings panel and the inline_depth
pragma control inlining depth.
Normally, the compiler only inlines an eligible function if it has already translated the
function’s definition. In other words, if an eligible function has not yet been compiled, the
compiler has no object code to insert. To overcome this limitation, the compiler can perform
interprocedural analysis (IPA) either in file or program mode. This lets the compiler evaluate
all the functions in a file or even the entire program before inlining the code. The IPA setting
in the IDE’s C/C++ Language settings panel and the ipa pragma control this capability.
The compiler normally inlines functions from the first function in a chain of function calls to
the last function called. Alternately, the compiler may inline functions from the last function
called to the first function in a chain of function calls. The Bottom-up Inlining option in the
IDE’s C/C++ Language settings panel and the inline_bottom_up and
inline_bottom_up_once
pragmas control this reverse method of inlining.
Some functions that have not been defined with the inline, __inline__, or __inline
keywords may still be good candidates to be inlined. Automatic inlining allows the compiler
to inline these functions in addition to the functions that you explicitly specify as eligible for
inlining. The Auto-Inline option in the IDE’s C/C++ Language panel and the auto_inline
pragma control this capability.
When inlining, the compiler calculates the complexity of a function by counting the number
of statements, operands, and operations in a function to determine whether or not to inline
an eligible function. The compiler does not inline functions that exceed a maximum
complexity. The compiler uses three settings to control the extent of inlined functions:
●
Maximum auto-inlining complexity: the threshold for which a function may be auto-
inlined
●
Maximum complexity: the threshold for which any eligible function may be inlined
●
Maximum total complexity: the threshold for all inlining in a function
The inline_max_auto_size, inline_max_size, and inline_max_total_size
pragmas control these thresholds, respectively.



Html Pages

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100  ...More


Datasheet Download

Go To PDF Page


Link URL



Does ALLDATASHEET help your business so far?  [ DONATE ] 

About Alldatasheet   |   Advertisement   |   Contact us   |   Privacy Policy   |   Link to Datasheet    |   Link Exchange   |   Manufacturer List
All Rights Reserved©Alldatasheet.com


Mirror Sites
English : Alldatasheet.com  |   English : Alldatasheet.net  |   Chinese : Alldatasheetcn.com  |   German : Alldatasheetde.com  |   Japanese : Alldatasheet.jp
Russian : Alldatasheetru.com  |   Korean : Alldatasheet.co.kr  |   Spanish : Alldatasheet.es  |   French : Alldatasheet.fr  |   Italian : Alldatasheetit.com
Portuguese : Alldatasheetpt.com  |   Polish : Alldatasheet.pl  |   Vietnamese : Alldatasheet.vn
Indian : Alldatasheet.in  |   Mexican : Alldatasheet.com.mx  |   British : Alldatasheet.co.uk  |   New Zealand : Alldatasheet.co.nz
Family Site : ic2ic.com  |   icmetro.com