eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingminmax(a,b,c)Re: minmax(a,b,c)
  • Data: 2013-12-05 13:18:19
    Temat: Re: minmax(a,b,c)
    Od: firr <p...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    >
    > co prawda chyba raczej powinno sie liczyc nie sumarycznie a po danej sciezce
    wykonania ale
    >
    > z tego co sie slyszy liczy sie tez chyba ilosc
    >
    > missów, tak czy owak ten kod ktory zminimalizowal
    >
    > ilosc skokow do 2 jak dla mnie akurat wyglada tutaj calkiem dobrze
    >
    >
    >
    > ciekawe czy dalo by sie to recznie np z uzyciem
    >
    > wlasnie bezifowców jeszcze to skompaktowac do jednego lub zero jumpow


    ten kod wlasnie jest dosyc zoptymalizowany

    //input ints eax ebx edx
    // output eax: min, ebx:- max

    cmp edx, eax
    jg L1
    swap edx, eax //here three movs for swap (*)
    L1:
    cmp ebx, edx
    jg L2
    cmp eax, ebx
    cmovg eax, ebx
    mov ebx, edx
    L2:

    sprawdzilem i sie zgadza, jest to dosyc
    pouczajace jako przyklad jak mozna optymalizowac
    takie coc

    co do wersji z samych cmovow to ktos podal
    przyklad

    void compute_min_max(int &min, int &max, int x, int y, int z) {
    min = x < y ? x : y;
    max = x > y ? x : y;
    min = min < z ? min : z;
    max = max > z ? max : z;
    }

    It produces this assembly code (clang-500.2.76 with -O3):

    .globl __Z15compute_min_maxRiS_iii
    .align 4, 0x90
    __Z15compute_min_maxRiS_iii: ## @_Z15compute_min_maxRiS_iii
    .cfi_startproc
    ## BB#0:
    pushq %rbp
    Ltmp2:
    .cfi_def_cfa_offset 16
    Ltmp3:
    .cfi_offset %rbp, -16
    movq %rsp, %rbp
    Ltmp4:
    .cfi_def_cfa_register %rbp
    cmpl %ecx, %edx
    movl %ecx, %eax
    cmovlel %edx, %eax
    movl %eax, (%rdi)
    cmovgel %edx, %ecx
    movl %ecx, (%rsi)
    movl (%rdi), %eax
    cmpl %r8d, %eax
    cmovgl %r8d, %eax
    movl %eax, (%rdi)
    movl (%rsi), %eax
    cmpl %r8d, %eax
    cmovgel %eax, %r8d
    movl %r8d, (%rsi)
    popq %rbp
    ret
    .cfi_endproc

    ciezko powiedziec bez testu ktora wersja szybsza
    - na razie nie moge przetestowac moze kiedys posniej

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

  • 05.12.13 13:42 firr
  • 05.12.13 15:07 firr
  • 06.12.13 13:07 firr
  • 06.12.13 13:15 firr
  • 07.12.13 16:16 firr

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: