Closed kim-yoonseung closed 8 years ago
폴더 이름을 programs/Python-3.4.1-novector-lowerswitch-llfiles
로 하면 좋다고 생각합니다. programs
폴더는 일단 고정하고, 그 안에 폴더 이름은 .ll 파일들의 속성이 잘 나타나도록 했으면 좋겠습니다.
지금 programs
폴더 안에 있는Python-3.4.1-llfiles
는 지워야 할까요?
둘 다 programs에 있으면 python test.py -r "-instcombine" -o -f -i "programs"
처럼 실행할 때 둘 다 실행되는 문제가 있습니다.
Python-3.4.1-llfiles
를 삭제하지 말자는 @jeehoonkang 님의 의견도 있었습니다.이건 @aqjune 님에게 넘기겠습니다.
--save-temps
옵션을 주게 된 경위가 무엇이었는지(vector타입이 나오는 것을 알았던 것과 연관이 있는지) 궁금합니다.
@kim-yoonseung
슬랙이나 현실에서도 노티 한번 줘보셔요
보실거라 믿습니다..!ㅋㅋ
그냥 어떻게 bc 파일들을 추출할 지 모르는 상태에서 임시 파일들을 삭제하지 않는 방법을 찾아보았는데 vector타입과의 연관성을 생각하고 한 것은 아닙니다.
그런데 저렇게 해보니 vector 타입들이 안 나오길래 이 파일들을 사용하는 게 좋을 것 같았습니다.
일단 vector 타입이 나오지 않도록 우리가 임의로 opt를 수정했다는 사실은 issue로 남겨두겠습니다. 후에 "vector타입이 나오지 않도록 우리가 컴파일러를 수정했다"라고 말 할 수는 없으니..
이슈에 이것을 가리키는 글을 남겨두겠습니다.
파이썬 코드에 대해 simplberry 테스트가 되도록 하였습니다.
커밋 내용은
clang/include/clang/Driver/Driver.h
에서bool isSaveTempsEnabled() const { return SaveTemps != SaveTempsNone; }
->bool isSaveTempsEnabled() const { return true; }
로 수정하여 언제나 --save-temps 옵션이 켜진 것처럼 실행하게 하였습니다. 다른 c파일을 만들어서 실험해보니 이 옵션을 켜면 최적화 이전의 ll파일이 제대로 나오는 것으로 보입니다.test.py
를 수정해서, 소스 - 타겟이 나올 경우 언제나 이 두 코드에opt -lowerswitch
변환을 수행하도록 하였습니다. 이 방법에 대해서는 토의할 여지가 있을 수 있으나, 지금은 이게 최선일 것 같습니다.현재 제가 넣었던 add-assoc 힌트 생성 코드에 버그가 있어, 곧 제가 올릴 llvm 풀리퀘스트가 머지되어야 add-assoc에 대한 테스트가 제대로 실행됩니다.
add-assoc을 수정한 후의 테스트는 아래와 같습니다.
명령:
python test.py -r "-instcombine" -o -f -i "programs_new"
결과:TOTAL : 161, SUCCESS : 160, FAIL : 0, UNKNOWN : 1
unknown은 검산기 실행 도중 한 케이스에서 stack_overflow 에러가 났기 때문이며, simplberry에 이슈 ( https://github.com/snu-sf/simplberry/issues/126 ) 를 올려두었습니다.
test.py를 이렇게 수정해도 괜찮을 지, 이전 python ll 파일과 현재 python ll 파일을 어떻게 처리할 지에 대한 얘기가 되면 좋겠습니다.