2.1.5 Go语言编译器简介中国 上海 / 2020-11.21-22 Go语言编译器简介 ’ alt=‘OCR图片’/> 关于我 Contributors to golang/go · GitHub 给Go编译器提交过127个补丁,累计六万余行; 拥有Go官方git仓库提交权限; 全球贡献者排名长期处于前50名; 世界上90%的gopher都用过我写的代码; 编译器的重要性 只有1%的程序员懂汇编语言 汇编语言无法构建大型系统 汇编语言无法构建大型系统 操作系统内核也需要编译器才能运行起来 编译理论是图灵奖大户,仅次于计算复杂度理论 操作系统有后门,编译器的后门更致命 编译器的难题:任务爆炸 N种语言 * M种机器 = N*M 个任务 GOPHER CHINA 2020 中国 上海 / 2020-11.21-22 两个方案 $$ N \mathrm {种 语 言} + M \mathrm {种 机 器} = 通用(非专用)编译器的方案 AST = Abstract Syntax Tree抽象语法树 SSA = Single Static Assignment单静态赋值 IR = Intermediate Representation中间表示 优点: 减少任务; 代码复用; GOPHER CHINA 2020 中国 上海 / 2020-11.21-22 相关理论成熟高效; LLVM的三阶段结构0 码力 | 36 页 | 1.63 MB | 1 月前3
LLVM's Realtime Safety Revolution: Tools for Modern Mission Critical Systems## +24 ## LLVM's Realtime Safety Revolution: Tools for Modern Mission Critical Systems DAVID TREVELYAN & CHRISTOPHER APPLE ## Chris Apple ## David Trevelyan • 10-year veteran of the audio industry safety build:mac unit:mac rtsan build:win unit:mac:arm build:linux unit:win unit:linux ## LLVM 20  WE'RE HERE (is_in_realtime_context(): print_stack_and_die("malloc"); return REAL(malloc)(size); } LLVM Intermediate Representation (IR) ## Real-time context signaling compilation step int dispatch()0 码力 | 153 页 | 1.38 MB | 1 年前3
KCL: Rust 在编译器领域的实践与探索## RUST CHINA CONF 2023 第三届中国Rust开发者大会 6.17-6.18 @Shanghai ## KCL: Rust 在编译器领域的实践与探索 张正 蚂蚁集团 ## 😍 01 KusionStack 与 KCL 02 用 Rust 重写 KCL 03 Rust 重写后的收益 04 更多的探索 ## 01 KusionStack 与 KCL ## KusionStack是什么 fb8525138fc88bca0/p9_2.jpg) ## 2 KCL 编译器架构升级 Python 代码翻译 Source Code Python code 栈式虚拟机 Source Code AST Bit code VM Rust 编译器 Source Code AST LLVM IR Native/WASM ## R ## 我们遇到了哪些问题? ## G 为什么选择 Rust? ### 1. Go, Python, Rust 性能对比 ||CPython|RustPython|GPython|VM(go)|VM(Rust)|VM(Python)|LLVM Native Code| |---|---|---|---|---|---|---|---| |简单Case a = 1|0.05s|0.125s|0.012s|0.01s|0.008s|0.6s|00 码力 | 25 页 | 3.50 MB | 2 年前3
Julia 1.12.0 Beta31298 58.7 Intermediate and compiled representations ..... 1299 59 C Interface ..... 1300 60 LLVM Interface ..... 1317 61 C Standard Library ..... 1318 62 StackTraces ..... 1324 63 SIMD Support 106.13 System Image Building 1910 106.14 Package Images 1913 106.15 Custom LLVM Passes 1915 106.16 Working with LLVM 1920 106.17 printf() and stdio in the Julia runtime 1928 106.18 Bounds checking inference and just-in-time (JIT) compilation (and optional ahead-of-time compilation), implemented using LLVM. It is multi-paradigm, combining features of imperative, functional, and object-oriented programming0 码力 | 2057 页 | 7.44 MB | 11 月前3
C++高性能并行编程与优化 - 课件 - 04 从汇编角度看编译器优化## AMD # 从汇编角度看编译器优化 by 彭于斌 (@archibate) 往期录播:https://www.bilibili.com/video/BV1fa411r7zp 课程 PPT 和代码:https://github.com/parallel101/course 的压力。 • 因此 64 位比 32 位机器相比,除了内存突破 4GB 限制外,也有一定性能优势。 # 8 位,16 位,32 位,64 位版本 al0 码力 | 108 页 | 9.47 MB | 2 年前3
5.cgo 原理解析及优化实践十余年网关研发 • OpenResty 老司机(NGINX + LuaJIT) • MOSN 核心成员 • Envoy Golang extension maintainer - 玩过 DSL 编译器 • 对 LuaJIT、Go 有一些研究  数据交互 ✓ 对 PC 寄存器的修改 ③ 抽象模型 ✓ 编译器完成地址指引 ✓ 函数调用规约 ✓ Go 1.17 ✓ 数据结构/类型 ✓ 内存对象生命周期 √ GMP ## cgo 编译的两个阶段 ① cgo 预编译 ✓ 生成 wrapper 代码 ✓ 屏蔽 GMP 模型 ② 常规编译 ✓ 底层调用 C 编译器 ✓ 链接器通过符号寻址 ## cgo 预编译 - C 调用0 码力 | 45 页 | 5.74 MB | 2 年前3
Julia 1.6.0 DEV DocumentationJULIA_GC_WAIT_FOR_DEBUGGER ..... 333 ENABLE_JITPROFILING ..... 334 ENABLE_GDBLISTENER ..... 334 JULIA_LLVM_ARGS ..... 334 30 Embedding Julia ..... 335 30.1 High-Level Embedding ..... 335 Using Julia-config 864 54.4 Alternate orderings 865 55 Iteration utilities 867 56 C Interface 877 57 LLVM Interface 889 58 C Standard Library 891 59 StackTraces 895 60 SIMD Support 897 Working with LLVM ..... 1300 Overview of Julia to LLVM Interface ..... 1300 Building Julia with a different version of LLVM ..... 1301 Passing options to LLVM ..... 1301 Debugging LLVM transformations0 码力 | 1383 页 | 4.56 MB | 2 年前3
SMALL IS GOING BIG: GOON MICROCONTROLLERS
WEBASSEMBLY ## HOW TINYGO WORKS ## GO → TINYGO → LLM ## GO COMPILER TOOLCHAIN IS WRITTEN IN GO ## LLVM - A SET OF TOOLS FOR BUILDING COMPILERS  is finally available on Windows, in the latest Visual Studio 2019 versions [Image](/uploads/documents/1/0/8/f/108f90d702d7ed2c2f8717cd7bf81ffc/p18_1.jpg) ## clang-tidy ~ 300 checks clang.llvm.org/extra/clang-tidy/checks/list.html ## clang-tidy modernize-use-nullptr modernize-loop-convert that should be treated as handles. By default only std::string_view is considered. https://clang.llvm.org/extra/clang-tidy/checks/bugprone-dangling-handle.html ### Lifetime profile v1.0 ## Lifetime safety:0 码力 | 135 页 | 27.77 MB | 1 年前3
Julia 1.8.0 DEV Documentationorderings ..... 920 55 Iteration utilities ..... 922 CONTENTS xi 56 C Interface 932 57 LLVM Interface 943 58 C Standard Library 944 59 StackTraces 947 60 SIMD Support 949 bits Union Optimizations ..... 1368 102.13 System Image Building ..... 1369 102.14 Working with LLVM ..... 1371 102.15 printf() and stdio in the Julia runtime ..... 1377 102.16 8ounds checking . good performance, achieved using type inference and just-in-time (JIT) compilation, implemented using LLVM. It is multi-paradigm, combining features of imperative, functional, and object-oriented programming0 码力 | 1463 页 | 5.01 MB | 2 年前3
共 754 条
- 1
- 2
- 3
- 4
- 5
- 6
- 76
相关搜索词
Go编译器编译器工作流程ARM64硬件除法器词法分析RealtimeSanitizerLLVMPerformance constraintsMission critical systemsDavid Trevelyan & Christopher AppleKCLRustKusionStack编译器LLVM IR多线程REPL线性代数C++高性性能高性能并行编程优化课件04cgoGo语言LLVM编译器内存生命周期栈空间分配JuliaJIT文档系统TinyGoWebAssembly微控制器GopherConsanitizersAddressSanitizerClang-tidyVisual StudioJulia编程语言Julia 1.8.0-DEVJIT compilationModule













