diff --git a/src/gallium/targets/opencl/Makefile.am b/src/gallium/targets/opencl/Makefile.am index de68a93ad5..f0e1de7797 100644 --- a/src/gallium/targets/opencl/Makefile.am +++ b/src/gallium/targets/opencl/Makefile.am @@ -23,11 +23,10 @@ lib@OPENCL_LIBNAME@_la_LIBADD = \ $(LIBELF_LIBS) \ $(DLOPEN_LIBS) \ -lclangCodeGen \ - -lclangFrontendTool \ -lclangFrontend \ + -lclangFrontendTool \ -lclangDriver \ -lclangSerialization \ - -lclangCodeGen \ -lclangParse \ -lclangSema \ -lclangAnalysis \
2019年9月30日 星期一
clang plugin undefined reference
as https://patchwork.freedesktop.org/patch/219763/ suggestes, reorder the library including sequence
2019年5月23日 星期四
llvm opt no effect?
in clang 5.0, it added a function call O0-optnone, which make your modification to llvm ir in passes not effective
compile you code with -Xclang -disable-O0-optnone then it will be effective again
compile you code with -Xclang -disable-O0-optnone then it will be effective again
2019年3月20日 星期三
prime nummber (C)
prime nummber
給你一個n,輸出第n個質數
給你一個n,輸出第n個質數
// Comment #include <stdio.h> #include <stdint.h> #define n 10000 uint64_t primes[n]; int main(void){ int primesSize = 2; primes[0] = 2; primes[1] = 3; // notice n must >= 2 for(uint64_t j = 4; j < UINTMAX_MAX; ++j){ if(primesSize >= n) break; for(int k = 0; k < primesSize; ++k){ if(j % primes[k] == 0) break; else if(primes[k]*primes[k] > j){ primes[primesSize] = j; primesSize++; break; } } } printf("%lu\n", primes[n-1]); return 0; }也可以使用6n+-1法 簡易版是在第一層for迴圈加入 if(j%2==0||j%3==0)continue;
even odd sort (C)
給你一個n,接下來有n個整數,對他們排序使得
(1) 偶數在奇數前面
(2) 偶數遞減排序、奇數遞增排序
然後輸出這個數列
(1) 偶數在奇數前面
(2) 偶數遞減排序、奇數遞增排序
然後輸出這個數列
// Comment #include <stdio.h> #include <stdlib.h> int lessthan(const void * p, const void * q){ return *(int*)p - *(int*)q; } int greaterthan(const void * p, const void * q){ return *(int*)q - *(int*)p; } void eosort(int * arr, int arrSize){ int *a1 = (int*)malloc(sizeof(int)*arrSize); int *a2 = (int*)malloc(sizeof(int)*arrSize); int odd_index = 0; int even_index = 0; int i; for(i = 0; i < arrSize; ++i){ if(arr[i] % 2){ a1[odd_index++] = arr[i]; } else a2[even_index++] = arr[i]; } qsort(a1, odd_index, sizeof(int), lessthan); qsort(a2, even_index, sizeof(int), greaterthan); for(i = 0; i < even_index; ++i){ arr[i] = a2[i]; } for(i = 0; i < odd_index; ++i){ arr[i + even_index] = a1[i]; } } int main(void){ int arr[] = {0, 9, 2, 7, 4, 5, 6, 3, 8, 1, 10}; int arrSize = 11; eosort(arr, arrSize); int i; for(i = 0; i < arrSize; ++i){ printf("%d ", arr[i]); } putchar('\n'); return 0; }
1004. Max Consecutive Ones III (C)
// Comment int longestOnes(int* A, int ASize, int K) { int result = 0; int localmax = 0; int indexOfZero = 0; for(int i = 0; i < ASize; ++i){ if(A[i] == 0) K--; localmax++; while(K<0){ if(A[indexOfZero] == 0){ K++; } indexOfZero++; localmax--; } result = localmax > result ? localmax : result; } return result; }
2019年2月11日 星期一
overload, override, polymorphism
Overload
一個func name可以take不同的input parameter
C比較難做到
https://stackoverflow.com/a/25026358
Override
C++11提供之修飾字only for existed virtual function
成功修改繼承來的virtual function的時候,加不加override的效果一樣
但修改繼承virtual function失敗時,沒有加override的話會產生一個新的virtual function,有加override會提示error
Polymorphism
class anime
virtual void eat(food f)
class cat : anime
class dog : anime
anime *p1 = new cat()
anime *p2 = new dog()
p1->eat()
p2->eat()
不用知道p1 p2是何種類別,用父類別去指定即可
一個func name可以take不同的input parameter
C比較難做到
https://stackoverflow.com/a/25026358
Override
C++11提供之修飾字only for existed virtual function
成功修改繼承來的virtual function的時候,加不加override的效果一樣
但修改繼承virtual function失敗時,沒有加override的話會產生一個新的virtual function,有加override會提示error
Polymorphism
class anime
virtual void eat(food f)
class cat : anime
class dog : anime
anime *p1 = new cat()
anime *p2 = new dog()
p1->eat()
p2->eat()
不用知道p1 p2是何種類別,用父類別去指定即可
2019年1月29日 星期二
memory rank bank
一個bank是棋盤狀儲存空間由row, column代表兩維度
一個chip有多個bank
一個rank由多個chip組成64bit or 72bit(ECC) 在64bit系統上
一條ram可以有多個rank
https://www.techbang.com/posts/18381-from-the-channel-to-address-computer-main-memory-structures-to-understand
一個chip有多個bank
一個rank由多個chip組成64bit or 72bit(ECC) 在64bit系統上
一條ram可以有多個rank
https://www.techbang.com/posts/18381-from-the-channel-to-address-computer-main-memory-structures-to-understand
訂閱:
文章 (Atom)