看板 NTUEE_VAL 關於我們 聯絡資訊
※ 引述《Fiesta (佛埃斯特)》之銘言: : ※ 引述《Fiesta (佛埃斯特)》之銘言: : : 其實這個想法是很對的,我覺得我們怎麼寫也寫不贏gcc : : 所以如同今天早上我跟阿儒以及GD所講的, : : 我打算直接用gcc -S 把code轉成assembly,然後再inline到原來的code, : : 當作是我這次的project : 雖然是這麼說,但是由於code真的還蠻複雜的,連動手都還沒。 : 不過現在我正在把原來的code行與行之間給加上printf() : 藉此來判斷哪些assembly指令對照於原本的c code leftcol=col-1; upper=prevRowBuf[col][curComp]; left=curRowBuf[leftcol][curComp]; diag=prevRowBuf[leftcol][curComp]; /* * All predictor are calculated according to psv. */ switch (psv) { case 0: /*0*/ *predictor = 0; break; case 1: /*0*/ *predictor = left; break; case 2: /*0*/ *predictor = upper; break; case 3: *predictor = diag; break; case 4: *predictor = left+upper-diag; break; case 5: *predictor = left+((upper-diag)>>1); break; case 6: *predictor = upper+((left-diag)>>1); break; case 7: *predictor = (left+upper)>>1; break; default: fprintf(stderr,"Warning: Undefined PSV\n"); *predictor = 0; 在c level可以加快速 就是開頭的變數用到才assign 但是改了也沒用... 因為其實gcc會做 真是暗陰陽 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.217.227.99
bask:大家一起改吧,有基本分就好了 12/19 22:20
bask:第一步改c第二步改asm,用pc基本分7分,opt兩步加兩分 12/19 22:22
bask:這個opt是沒用的,因為每次都跑case 5... 12/19 22:24