블로그 복구 후기

20일부터 25일까지 블로그가 터졌다는 걸 뒤늦게 확인 알게된 것은 월요일(25일), 블로그를 들어가려고 하니 빈 화면만 출력되는 상황 서버가 에러를 내거나, 그런건 아니고 HTTP Response 정상적으로 뜨니 WordPress UpDown Bot이 메일도 안 보내줬던 상황으로 추정 이 때까지만 해도 언제부터 서버가 내려갔는지 모르는 상황이라, 대충 짐작해보면 docker로 outline이라는 VPN을 깔았을 떄 부터가 아닌가.,, WordPress 또한 docker로 돌아가고 […]

Introduction to LLVM (3)

12. Static Single Assignment (SSA) Form 어디서 어떤 변수가 선언/사용되고 있는지 추척하는 것이 최적화의 주된 질문 중 하나. 위와 같은 상황에서는 if를 전후로 x의 역할이 바뀐다. Line 1의 x와 Line 7의 x는 전혀 연관이 없다. 이런 경우에는 두 변수를 구분해줘야 LLVM이 변수의 선언/사용을 추적하는 게 더 쉽지 않을까? 극단적인 상황을 가정해보자. 하나의 int 변수로 서로 […]

2018년 회고 및 2019년 계획

원래 이런 포스팅은 1월 1일에 해줘야 제맛이겠지만… 방 정리하고 계획짜고, 지난 학기 마무리겸 강의 정리도 하다보니 조금 늦어졌네요. 이 글에서는 2018년 회고를 순서없이 떠오르는 대로 나열해보고, 2019년 목표를 간단하게 정리해볼까 합니다. 2018년 회고 제 상반기를 갈아 넣었던 연구실 Lecture Management System 프로젝트가 가장 힘들었습니다. Vue.js 기반의 프론트엔드 담당 + PM까지 했었는데, 도대체 왜 내가 데이터베이스 […]

Introduction to LLVM (2)

6. LLVM Compiler System For Compiler Developer, 컴파일러를 만들기 위한 모듈화된, 재사용 가능한 컴포넌트들을 제공 -> 컴파일러 제작 시간, 비용 등을 절감 Intermediate Representation(IR)이 매우 잘 정의되어 있음. 깔끔한 구조, 고품질의 컴포넌트가 풍부. C, C++, Objective-C, Swift 등의 프로덕션 레벨 컴파일러의 기반. LLVM JIT, OpenMP RT, AMD OpenCL 등도 LLVM 기반. LLVM Debugger도 굉장히 좋음. […]

Introduction to LLVM (1)

이번 학기에 고급 컴파일러 설계를 수강했습니다. 물론, 대학원 수업이기 때문에 형식적으로 “고급”이 붙었을 뿐이라 정말 완벽하게 고급진 내용은 아니였지만 LLVM의 구조, 철학, 사용하고 있는 이론적 배경 등을 배우는 수업이였기에 LLVM 소개글 정도로 포스팅의 목적을 정했어요. 수업에서 배운 내용을, 그리고 교수님이 내주셨던 과제와 개인이 제안해서 진행했던 과제들을 수행하면서 겪었던 시행착오들을 정리해 봅니다. 대부분의 내용은 Bernd Burgstaller […]