디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

LLVM IR 소개 (일종의 통합 가상 어셈블리)

나르시갤로그로 이동합니다. 2025.11.24 14:34:57
조회 74 추천 0 댓글 0

? LLVM IR 소개

LLVM IR(Intermediate Representation)은 LLVM 프로젝트의 핵심 요소로, 다양한 언어와 아키텍처를 연결하는 가상 중간 언어입니다. 내부 표현으로 사용되지만, 사람이 직접 작성하거나 기계가 생성할 수 있으며, 새로운 언어 개발에도 활용됩니다. 


1. LLVM 툴체인 필요함

LLVM IR을 다루려면 LLVM 툴체인이 필요합니다.
- clang : C/C++ 등의 소스를 IR로 변환
- llc : IR을 특정 아키텍처의 어셈블리로 변환
- opt : IR 최적화 패스 적용
- llvm-link : 여러 IR 모듈을 하나로 통합 

참고: 일반적으로 Clang을 설치하면 LLVM 툴체인 전체가 함께 설치됩니다. 


2. 여러 어셈블리를 통합할 수 있는 가상 중간 언어

LLVM IR은 흔히 “portable 어셈블리 language”라고 불립니다.
- CPU 아키텍처에 종속되지 않고, x86, ARM, RISC-V 등 다양한 백엔드로 변환 가능
- 여러 언어(frontend)에서 생성된 IR을 하나로 합쳐 최적화 후 기계어로 변환할 수 있음
- 여러 어셈블리를 통합하는 중간 단계 역할을 수행 


3. 사람이 직접 LLVM IR 작성 가능

LLVM IR은 사람이 직접 작성할 수 있습니다. 예를 들어, 두 수를 더하는 함수는 다음과 같이 표현됩니다:

define i32 @add(i32 %a, i32 %b) {
entry:
  %sum = add i32 %a, %b
  ret i32 %sum
}

4. 기계로 LLVM IR 작성 가능

보통은 사람이 직접 작성하기보다 컴파일러(frontend)가 IR을 자동으로 생성합니다.
- 예: clang -S -emit-llvm add.c -o add.ll
- 이렇게 하면 C 코드가 IR로 변환되어, 이후 최적화와 코드 생성에 활용됩니다. 


5. 신규 프로그래밍 언어 개발에 활용

LLVM IR은 새로운 언어를 만들 때도 사용됩니다.
- 언어 제작자는 문법과 파서를 구현한 뒤, 기계어 대신 IR을 출력하도록 설계
- LLVM이 IR을 다양한 아키텍처용 코드로 변환
- Rust, Swift, Julia 같은 언어들이 LLVM 기반으로 만들어졌습니다. 


6. OOP도 이론적으로 가능

LLVM IR은 함수, 구조체, 타입 시스템 등을 표현할 수 있어 객체지향 프로그래밍(OOP) 개념도 이론적으로 구현 가능합니다.
- 클래스와 메서드는 구조체와 함수 포인터로 모델링 가능
- 가상 함수 테이블(vtable) 같은 패턴도 IR로 표현 가능
- IR 자체는 저수준 중간 표현이므로, OOP는 언어 설계자가 IR 위에 추상화를 얹어 구현하는 방식입니다. 


📌 정리

  • LLVM IR은 LLVM 툴체인을 통해 다루는 가상 중간 언어다.
  • 여러 언어와 아키텍처를 연결하며, 사람이 직접 작성하거나 컴파일러가 생성할 수 있다.
  • Clang 설치 시 LLVM 툴체인도 함께 설치된다.
  • 새로운 언어 개발에도 활용되며, OOP 같은 고수준 개념도 표현 가능하다.

🔗 공식 튜토리얼

LLVM IR을 학습하려면 LLVM 공식 튜토리얼을 참고할 수 있습니다: LLVM Tutorial: Kaleidoscope


이 글은 LLM으로 생산한 글입니다.

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 뛰어난 운동 신경으로 남자와 싸워도 이길 것 같은 여자 스타는? 운영자 25/11/24 - -
AD 따뜻한 겨울나기! 방한용품 SALE 운영자 25/11/27 - -
2904937 빨리 실업급여 제발 [2] 프갤러(110.8) 11.26 57 0
2904936 그래서 팩트는 루도그담당(58.233) 11.26 56 0
2904935 ㅆㅇㅆ 보면 존나 불쌍하긴함 ㅋㅋㅋ RyuDOG갤로그로 이동합니다. 11.26 55 0
2904934 아무리 기싸움 걸어봤자 루도그담당(58.233) 11.26 46 0
2904933 하긴 워낙 캥기는게 많은 인생이라 ㅋㅋㅋ RyuDOG갤로그로 이동합니다. 11.26 53 0
2904932 송사고 뭐고 루도그담당(58.233) 11.26 63 4
2904931 쳇트ㅡ Meow갤로그로 이동합니다. 11.26 53 0
2904930 ㅆㅇㅆ 같은애 고소하면 내가 나쁜놈이 되잖아 RyuDOG갤로그로 이동합니다. 11.26 58 0
2904929 에에 고소할거다노 ~ 루도그담당(58.233) 11.26 57 0
2904928 이렇게 티배깅할때 마다 늘 즐거움 RyuDOG갤로그로 이동합니다. 11.26 54 0
2904927 어딜가나 벌레가 꼬여 ㅇㅇ [1] RyuDOG갤로그로 이동합니다. 11.26 73 0
2904926 오늘의 소설, 영화 실마리: 범죄 학교 발명도둑잡기(118.216) 11.26 29 0
2904925 ㅆㅇㅆ = 앱히키 ㅇㅇ(222.108) 11.26 53 0
2904924 Ai 발전 속도가 너무 느림 [4] RyuDOG갤로그로 이동합니다. 11.26 97 0
2904923 linq 다른언어용으로 비슷하게 만든거 [2] 발명도둑잡기(118.216) 11.26 82 0
2904922 브레인스토밍 책사풍후갤로그로 이동합니다. 11.26 35 0
2904920 ❤✨☀⭐⚡☘⛩☃나님 시작합니당☃⛩☘⚡⭐☀✨❤ ♥냥덩이의우웅한하룽♥갤로그로 이동합니다. 11.26 55 0
2904919 이찬혁-SINNY SINNY 발명도둑잡기(118.216) 11.26 44 0
2904918 ㅎㅎAI가 버그도 다 잡아 줌 ㅋㅋ 소스코드 평가 겁나 편하네 나르시갤로그로 이동합니다. 11.26 73 0
2904917 vscode 은근 무겁네 [3] 프갤러(110.8) 11.26 74 0
2904916 프뉴비 질문) tkinter로 gui프로그램 작성중인데 한글이 [5] 프갤러(123.215) 11.26 56 0
2904915 Clair.Event_Loop 구현 완료함. ㅋㅋ 현재 손적화 중 [10] 나르시갤로그로 이동합니다. 11.26 79 0
2904914 내란견 냥덩이 때문에 한국이 핵폭탄 맞게 됐다 [1] 발명도둑잡기(118.216) 11.26 56 1
2904912 ai나와서 존나 좆같긴해. [3] 코딩의신(121.139) 11.26 120 2
2904910 다리꼬는거 같은거로 시비거는거 프로페셔널하지 못함 [1] 프갤러(110.8) 11.26 67 0
2904909 pm이 사장앞에서 다리꼬는거 가능하냐? [9] 헬마스터갤로그로 이동합니다. 11.26 133 0
2904908 벨튀 감시자 만들어봄 [5] 옛살비갤로그로 이동합니다. 11.26 97 0
2904906 join보다 sub query가 더 좋은 경우도 있나? [5] 프갤러(58.29) 11.26 75 0
2904905 비전공자에서 AIoT 실무자로! HDC랩스 NOVA 2기 모집 (국비지원 프갤러(14.32) 11.26 41 0
2904903 사용자 대화 주제/수준과 제미니의 감정적 반응 연관성 [8] 나르시갤로그로 이동합니다. 11.26 85 0
2904902 퍼플렉시티 쓰는데 질문좀. 프갤러(221.164) 11.26 72 0
2904900 면접 뭐입고가냐 그래서 [4] ㅇㅇ갤로그로 이동합니다. 11.26 97 0
2904899 ai 발전하믄 좋은 점 프갤러(118.235) 11.26 56 0
2904898 근데 사실 ㅆㅇㅆ보다 심한 더닝크루거 애들도 많음 [2] 프갤러(121.139) 11.26 100 2
2904897 linq 한번 맛보니까 자스 쳐다보기도 싫노 [4] 뉴진파갤로그로 이동합니다. 11.26 81 0
2904896 ai나와서 이제 ㅆㅇㅆ같은애들 대거 양산될거 생각하니 무섭네 ㅋㅋ [1] 프갤러(121.139) 11.26 95 5
2904894 세글자닉 우울증갤러리에서 활동한것도 [2] 프갤러(121.139) 11.26 83 2
2904891 속보 ) 윈도우12 2026년에 출시 연기, 윈도우12 사실상 개발 중 타이밍뒷.통수한방(1.213) 11.26 72 1
2904890 호캉스 좋다 [2] 543543갤로그로 이동합니다. 11.26 88 0
2904888 븍쪽도아니고남쪽에서 태어나서 좇같은새끼들일수록 잘살더라 [1] 타이밍뒷.통수한방(1.213) 11.26 55 0
2904885 인지과학조져라 손발이시립디다갤로그로 이동합니다. 11.26 65 0
2904883 진짜 오늘 딸라 쎄일하네 [5] chironpractor갤로그로 이동합니다. 11.26 119 0
2904881 가치를 인정해주지 않는 사람에겐 그만큼만 해주면 된다. [12] 프갤러(221.149) 11.26 169 1
2904880 프로그래머는 티 나는 쪽 아닌가? ㅇㅅㅇ [2] 헤르 미온느갤로그로 이동합니다. 11.26 110 0
2904877 뱀 가족 ㅇㅅㅇ [1] 헤르 미온느갤로그로 이동합니다. 11.26 69 0
2904876 태연 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 11.26 56 0
2904875 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 11.26 54 0
2904874 프로그래머는 뭐를 해도 티가 안나. [1] 프갤러(59.16) 11.26 133 0
2904871 스타크래프트와 같은 RTS 게임에서 가장 치명적인 문제는 책사풍후갤로그로 이동합니다. 11.26 71 0
2904868 나님 달러 추가매수중 재명이 때문에 국가부도사태 터질듯 [3] ♥냥덩이의우웅한하룽♥갤로그로 이동합니다. 11.26 135 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2