llvm 입문하기(8)
이제 Kaleidoscope를 object 파일로 컴파일한다.
전체 49개 글
이제 Kaleidoscope를 object 파일로 컴파일한다.
SSA 형태의 LLVM IR에서 alloca, load/store와 mem2reg pass로 변경 가능한 변수, 대입 연산자, 지역 변수를 구현한다.
Kaleidoscope에서 사용자가 직접 이항·단항 연산자와 우선순위를 정의할 수 있도록 parser와 코드 생성을 확장한다.
Kaleidoscope에 if/then/else와 for 루프를 추가하면서 lexer, parser, AST를 확장하고 분기와 phi 노드로 IR을 생성한다.
이번 장은 JIT랑 Optimizer를 붙이는 장이다.
CMake 프로젝트의 진입점은 보통 최상위 디렉터리의 CMakeLists.txt다. addsubdirectory()로 추가한 하위 디렉터리도 자기 CMakeLists.txt를 가질 수 있다.
로그를 조금 더 편하게 보기 위한 분석기를 C++로 만들어봤다.
LLVM IR의 구조와 SSA 개념을 정리하고, Kaleidoscope의 표현식과 함수를 LLVM IR로 코드 생성하는 과정을 따라간다.
lexer에서 토큰을 쪼갰으니까, 이제 이 토큰으로 문장을 만들어야된다.
ai slop이 만연하는 요즘 시대에 근본에 대한 공부를 좀 하고 싶어서 llvm을 알아보기로했다.
55개 글 · 133개 연결
노드를 선택해 제목을 확인한 뒤 글로 이동하세요.
곡선: 본문 링크 · 묶음: 같은 카테고리