Work Note 11, DM546, Spring 2015
Lecture March 24
No lecture.
Exercises March 27
-
Consider possible targets for optimization other than time and space
and describe plausible goals.
-
Try to find patterns which could be used in a high-level
peep-hole optimization of for instance C-programs.
Are there any possible dangers in writing a high-level
optimizer for C-programs where simple but inefficient code
is replaced by more complicated but also more efficient code?
-
Take a look at code generated by gcc (compile with gcc -S)
for a few well-known and relatively short source files,
such as factorial, for instance.
Try to investigate the effect of the three options
-O1
, -O2
, and -O3
with regards to code optimization.
-
Assume that you have (structured) Intel Pentium code
in a linked list of structs. Thus, entries are typically op-fields,
parameter-fields, and possibly a pointer in connection with
jump
-instructions (therefore the term "structured").
Sketch the C-code which recognizes assembler code
of the nature "x = x + 1
" and replaces it by the
appropriate "inc x
" equivalent code.
-
Find more patterns in the categories from the lecture
or from new catagories that you come up with.
Last modified: Fri Mar 20 16:24:22 CET 2015
Kim Skak Larsen
(kslarsen@imada.sdu.dk)