Optimization Topics/Exercise 08: Difference between revisions
From Wiki**3
Created page with "{{TOCright}} == Problema == Considere a seguinte função em C: # Que optimizações independentes da máquina são possíveis? # Traduza-a para Postfix optimizado. <source..." |
|||
| Line 8: | Line 8: | ||
<source lang="c"> | <source lang="c"> | ||
double *fun(double *a, double *b) { | double *fun(double *a, double *b) { | ||
double *c = (double *)malloc(2 * 8) | double *c = (double *)malloc(2 * 8); | ||
int i; | int i; | ||
for (i = 0; i < (len < 2 ? len : 2); i++) | for (i = 0; i < (len < 2 ? len : 2); i++) | ||
Revision as of 12:50, 12 June 2023
Problema
Considere a seguinte função em C:
- Que optimizações independentes da máquina são possíveis?
- Traduza-a para Postfix optimizado.
double *fun(double *a, double *b) {
double *c = (double *)malloc(2 * 8);
int i;
for (i = 0; i < (len < 2 ? len : 2); i++)
c[i] = a[i] + b[i];
return c;
}
Código Postfix (não optimizado)
O código Postfix correspondente ao código C é o seguinte (agradece-se a comunicação de questões relativas a este código).
| Código Postfix |
|---|
Compiling and Running
Para compilar o código Postfix directamente, pode ser utilizada a ferramenta pf2asm (assumindo uma arquitectura Intel de 32 bits -- ix86):
pf2asm code.pf yasm -felf32 code.asm