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)