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

X  

AN3350 Datasheet(PDF) 108 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) 108 Page - STMicroelectronics

Back Button AN3350 Datasheet HTML 104Page - STMicroelectronics AN3350 Datasheet HTML 105Page - STMicroelectronics AN3350 Datasheet HTML 106Page - STMicroelectronics AN3350 Datasheet HTML 107Page - STMicroelectronics AN3350 Datasheet HTML 108Page - STMicroelectronics AN3350 Datasheet HTML 109Page - STMicroelectronics AN3350 Datasheet HTML 110Page - STMicroelectronics AN3350 Datasheet HTML 111Page - STMicroelectronics AN3350 Datasheet HTML 112Page - STMicroelectronics Next Button
Zoom Inzoom in Zoom Outzoom out
 108 / 185 page
background image
Intermediate optimizations
AN3350
108/185
Doc ID 018512 Rev 2
For example, in Example 59 three variables, a, b, and c, are defined. Although each
variable is eventually used, each of their uses is exclusive to the others. In other words, a is
not referred to in the same expressions as b or c, b is not referred to with a or c, and c is
not used with a or b.
In Example 60, the compiler has replaced a, b, and c, with a single variable. This
optimization reduces the number of registers that the object code uses to store variables,
allowing more variables to be stored in registers instead of slower memory. This optimization
also reduces a function’s stack memory.
Example 59 Before live range splitting
void func_from(int x, int y)
{
int a;
int b;
int c;
a = x * y;
otherfunc(a);
b = x + y;
otherfunc(b);
c = x - y;
otherfunc(c);
}
Example 60 After live range splitting
void func_to(int x, int y)
{
int a_b_or_c;
a_b_or_c = x * y;
otherfunc(temp);
a_b_or_c = x + y;
otherfunc(temp);
a_b_or_c = x - y;
otherfunc(temp);
}
13.1.7
Loop-invariant code motion
Loop-invariant code motion moves expressions out of a loop if the expressions are not
affected by the loop or the loop does not affect the expression. This optimization improves
execution speed.
Table 23 explains how to control the optimization for loop-invariant code motion.



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