99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

深入淺出LLVM:編譯器架構(gòu)、優(yōu)化Pass與llvmpipe軟件渲染實(shí)戰(zhàn)

深入淺出LLVM:編譯器架構(gòu)、優(yōu)化Pass與llvmpipe軟件渲染實(shí)戰(zhàn) 1. LLVM到底是個(gè)什么項(xiàng)目從一次排查渲染問(wèn)題說(shuō)起前陣子有同事給我發(fā)來(lái)一條日志上面寫(xiě)著llvmpipe (LLVM 15.0.7, 256 bits)問(wèn)我這行字是什么意思是不是系統(tǒng)出了故障。我一看就樂(lè)了——這哪是故障這是你的軟件渲染器在老實(shí)交代自己的“底牌”。llvmpipe是 Mesa 圖形棧里的 CPU 軟件渲染實(shí)現(xiàn)它背后站著的是 LLVM 這個(gè)編譯器基礎(chǔ)設(shè)施。如果只看名字很多人以為 llvmpipe 是某種管道工具其實(shí)它的意思是“用 LLVM 實(shí)現(xiàn)的軟件像素管線”。說(shuō)到 LLVM很多人第一反應(yīng)是“哦Clang 編譯器”。這個(gè)理解沒(méi)錯(cuò)但太窄了。LLVM 是一個(gè)龐大的編譯器基礎(chǔ)設(shè)施項(xiàng)目Clang 只是它上面的一個(gè)前端。從手機(jī) App 到游戲引擎從 GPU 驅(qū)動(dòng)到編程語(yǔ)言工具鏈背后都有 LLVM 的身影。我自己最早接觸 LLVM 是為了搞清楚編譯器優(yōu)化到底在優(yōu)化什么結(jié)果一頭扎進(jìn)去就再?zèng)]出來(lái)——這個(gè)項(xiàng)目的設(shè)計(jì)思路、工程組織、社區(qū)文化在開(kāi)源世界里幾乎找不到第二個(gè)同級(jí)別的存在。這篇文章我想從一個(gè)軟件渲染日志中的256 bits說(shuō)起把 LLVM 項(xiàng)目的整體結(jié)構(gòu)、核心設(shè)計(jì)、實(shí)際操作和避坑經(jīng)驗(yàn)一次講清楚。不管你是做編譯器開(kāi)發(fā)的、寫(xiě) GPU 驅(qū)動(dòng)的、還是單純想搞懂“編譯器是怎么工作的”這篇文章應(yīng)該都能給你一些參考。2. 三段式架構(gòu)為什么 LLVM 能“一招鮮吃遍天”2.1 從“翻譯官”到“萬(wàn)能中間層”傳統(tǒng)編譯器的結(jié)構(gòu)是“前端 后端”前端解析源代碼生成中間表示后端把中間表示翻譯成目標(biāo)機(jī)器碼。問(wèn)題在于前端和后端是一一綁定的來(lái)一個(gè)新語(yǔ)言就要寫(xiě)一套完整工具鏈來(lái)一個(gè)新 CPU 架構(gòu)又要重寫(xiě)一遍后端。這種模式的維護(hù)成本極高而且優(yōu)化邏輯分散在前后端里很難統(tǒng)一復(fù)用。LLVM 的設(shè)計(jì)思路從根本上改變了這個(gè)局面。它把編譯器拆成了三段前端Frontend、中端優(yōu)化器Optimizer、后端Backend。前端把源代碼翻譯成 LLVM IR這是一個(gè)獨(dú)立于具體語(yǔ)言和具體硬件的中間表示中端優(yōu)化器針對(duì) IR 做各種通用的優(yōu)化后端再把優(yōu)化后的 IR 翻譯成目標(biāo)平臺(tái)的機(jī)器碼。我習(xí)慣用一個(gè)翻譯公司的例子來(lái)解釋前端是“中文翻譯成世界語(yǔ)”的譯員中端是“把世界語(yǔ)文本潤(rùn)色改稿”的編輯后端是“把世界語(yǔ)翻譯成英文、日文、法文”的另一批譯員。世界語(yǔ)就是 LLVM IR它本身不是最終產(chǎn)物但它讓整個(gè)流程可以靈活組合——來(lái)一門(mén)新語(yǔ)言只需要新招一個(gè)“中文翻譯成世界語(yǔ)”的譯員其他環(huán)節(jié)全部復(fù)用。這個(gè)設(shè)計(jì)的威力在哪兒一個(gè)編程語(yǔ)言社區(qū)想做自己的編譯器只要寫(xiě)一個(gè)前端生成 LLVM IR就能立刻獲得全套優(yōu)化、調(diào)試、代碼生成能力。一個(gè)芯片廠商想支持新指令集只要寫(xiě)好 LLVM 后端所有基于 LLVM 的語(yǔ)言都能跑上新硬件。這就是 LLVM 能成為“編譯器領(lǐng)域的 Linux”的根本原因。2.2 IR 的三層表示為什么調(diào)試信息能跨越整個(gè)編譯流程LLVM IR 不是一個(gè)單一的形態(tài)它有三層表示內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)、文本形式的.ll文件、二進(jìn)制形式的.bc文件。這聽(tīng)起來(lái)像純工程實(shí)現(xiàn)細(xì)節(jié)但它對(duì)實(shí)際開(kāi)發(fā)的影響非常大。文本形式.ll是可讀的方便調(diào)試和分析優(yōu)化過(guò)程。我在寫(xiě) Pass 的時(shí)候經(jīng)常把 IR 打印出來(lái)逐條檢查優(yōu)化前后的差異。二進(jìn)制形式.bc適合存儲(chǔ)和快速加載常用于鏈接時(shí)優(yōu)化的場(chǎng)景。內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)則是編譯器運(yùn)行時(shí)的真實(shí)狀態(tài)。更關(guān)鍵的是IR 從生成到變成機(jī)器碼一直保留著源代碼層面的元數(shù)據(jù)。變量名、文件路徑、行號(hào)、類型信息都掛在 IR 的指令和函數(shù)上。這意味著你在調(diào)試優(yōu)化后的代碼時(shí)還能把機(jī)器碼準(zhǔn)確地映射回源代碼——這個(gè)能力叫 DWARF 調(diào)試信息它讓 GDB、LLDB 等調(diào)試器能正常工作。沒(méi)有這個(gè)設(shè)計(jì)編譯器優(yōu)化做得再漂亮調(diào)試體驗(yàn)也會(huì)一團(tuán)糟。2.3 項(xiàng)目倉(cāng)庫(kù)里到底裝了什么一次目錄掃盲很多初學(xué)者 clone 下 llvm-project 倉(cāng)庫(kù)之后看著根目錄下那一大堆文件夾直接懵了。我來(lái)幫你掃一遍最重要的目錄llvm/核心目錄包含 LLVM 的基礎(chǔ)庫(kù)、優(yōu)化器、后端、IR 定義、工具鏈。clang/C/C/Objective-C 的前端這是 LLVM 最重要的前端實(shí)現(xiàn)。lld/高性能鏈接器鏈接速度比 GNU ld 快很多我自己實(shí)測(cè)大項(xiàng)目鏈接能快兩三倍。compiler-rt/運(yùn)行時(shí)庫(kù)提供諸如地址消毒器ASan、未定義行為消毒器UBSan等工具的支持。libcxx/和libcxxabi/C 標(biāo)準(zhǔn)庫(kù)和 ABI 庫(kù)的實(shí)現(xiàn)。flang/Fortran 語(yǔ)言前端科研和 HPC 領(lǐng)域用得比較多。mlir/MLIR 項(xiàng)目專門(mén)為機(jī)器學(xué)習(xí)編譯器設(shè)計(jì)的多層中間表示框架現(xiàn)在已經(jīng)是 AI 編譯器的核心基礎(chǔ)設(shè)施。polly/基于多面體模型的循環(huán)優(yōu)化框架偏學(xué)術(shù)研究方向。clang-tools-extra/各種 Clang 輔助工具比如 clang-tidy、clang-format。這套結(jié)構(gòu)體現(xiàn)了 LLVM 的設(shè)計(jì)哲學(xué)每個(gè)子項(xiàng)目都是獨(dú)立可用的組件組合在一起又是一個(gè)完整的工具鏈。你可以只拿 clang-format 這個(gè)工具來(lái)規(guī)范代碼風(fēng)格也可以把整個(gè) LLVM 作為依賴集成進(jìn)自己的產(chǎn)品里。3. 核心組件與構(gòu)建系統(tǒng)先把工程踩熟3.1 CMake 配置決定你接下來(lái)幾個(gè)小時(shí)命運(yùn)的參數(shù)LLVM 使用 CMake 作為構(gòu)建系統(tǒng)。這不是簡(jiǎn)單的“運(yùn)行 cmake 然后 make”的問(wèn)題幾個(gè)關(guān)鍵參數(shù)的選擇直接決定構(gòu)建耗時(shí)和最終產(chǎn)物質(zhì)量。我把自己常用的參數(shù)整理成一個(gè)表參數(shù)推薦值作用與理由LLVM_ENABLE_PROJECTSclang;lld指定額外構(gòu)建的子項(xiàng)目用分號(hào)分隔構(gòu)建順序有依賴關(guān)系LLVM_TARGETS_TO_BUILDX86只構(gòu)建需要的目標(biāo)架構(gòu)后端全量構(gòu)建會(huì)消耗大量時(shí)間和磁盤(pán)CMAKE_BUILD_TYPERelease或RelWithDebInfoRelease 性能好RelWithDebInfo 保留調(diào)試信息調(diào)試用后者LLVM_USE_LINKERlld或gold鏈接器選擇大項(xiàng)目鏈接時(shí) lld 能省大量時(shí)間LLVM_PARALLEL_LINK_JOBS2或4限制并行鏈接任務(wù)數(shù)防止鏈接階段內(nèi)存爆掉LLVM_ENABLE_ASSERTIONSON開(kāi)發(fā)時(shí)開(kāi)啟斷言能幫你早期發(fā)現(xiàn)問(wèn)題但會(huì)拖慢性能我踩過(guò)最大的坑就是第一次構(gòu)建時(shí)沒(méi)設(shè)置LLVM_TARGETS_TO_BUILD結(jié)果全量構(gòu)建了所有后端包括我根本用不到的 AArch64、PowerPC、MIPS磁盤(pán)直接被吃掉幾十 GB。第二次學(xué)乖了只保留 X86構(gòu)建時(shí)間縮短了一半以上。3.2 構(gòu)建機(jī)器的最低配置與時(shí)間預(yù)期LLVM 構(gòu)建是 CPU 密集型的活兒建議至少 8 核 16 線程以上的機(jī)器。16 GB 內(nèi)存是底線如果你開(kāi)啟了并行鏈接建議 32 GB。磁盤(pán)方面光源碼就得 1-2 GB構(gòu)建產(chǎn)物按配置不同要 20-50 GB。如果你打算用ccache做增量編譯緩存那再加 20 GB 也不嫌多。構(gòu)建時(shí)間因機(jī)器而異。一臺(tái) 16 核的現(xiàn)代機(jī)器全量構(gòu)建 LLVM Clang lld 的 Release 版本大概需要 30-60 分鐘。配置越全、調(diào)試信息越多時(shí)間越長(zhǎng)。我試過(guò)在一臺(tái) 4 核老機(jī)器上構(gòu)建整整跑了三個(gè)多小時(shí)中途還因?yàn)閮?nèi)存不夠崩了兩次。所以如果你只是學(xué)習(xí)用建議先只構(gòu)建llvm本體的工具鏈沒(méi)必要一上來(lái)就全量構(gòu)建所有子項(xiàng)目。3.3 從源碼構(gòu)建 LLVM 15.0.7 的完整流程假設(shè)你已經(jīng)裝好了git、cmake、ninja和一個(gè)支持 C17 的編譯器GCC 7.1 或 Clang 5下面是完整的操作流程# 1. 克隆倉(cāng)庫(kù)-b 指定版本分支 git clone -b llvmorg-15.0.7 https://github.com/llvm/llvm-project.git cd llvm-project # 2. 創(chuàng)建構(gòu)建目錄保持源碼目錄干凈 mkdir build cd build # 3. CMake 配置 cmake -G Ninja ../llvm \ -DCMAKE_BUILD_TYPERelease \ -DLLVM_ENABLE_PROJECTSclang;lld \ -DLLVM_TARGETS_TO_BUILDX86 \ -DLLVM_USE_LINKERlld \ -DLLVM_PARALLEL_LINK_JOBS2 # 4. 開(kāi)始構(gòu)建-j 后面跟并行度 ninja -j16 # 5. 驗(yàn)證構(gòu)建結(jié)果 ./bin/llvm-config --version ./bin/clang --version第一步拉代碼時(shí)加-b參數(shù)可以避免檢出后手動(dòng)切換分支。第三步的cmake是配置階段它會(huì)檢查依賴、生成構(gòu)建文件這一步如果報(bào)錯(cuò)多半是缺包或者編譯器版本不夠。第四步ninja是真正的編譯階段參數(shù)-j16表示并行 16 個(gè)任務(wù)可以根據(jù)你的 CPU 核數(shù)調(diào)整。4. 實(shí)操用 LLVM 寫(xiě)一個(gè)優(yōu)化 Pass 并跑通4.1 先理解 Pass 是什么優(yōu)化的最小執(zhí)行單元LLVM 的優(yōu)化器由成百上千個(gè) Pass 組成每個(gè) Pass 完成一類特定的代碼變換。有些 Pass 做常量折疊——把1 2直接換成3有些做死代碼消除——?jiǎng)h掉永遠(yuǎn)不會(huì)執(zhí)行的代碼有些做循環(huán)展開(kāi)——減少循環(huán)控制開(kāi)銷(xiāo)。Pass 的機(jī)制設(shè)計(jì)得極其靈活你既可以用現(xiàn)成的 Pass 鏈跑整個(gè)優(yōu)化流程也可以只跑一個(gè)自己寫(xiě)的 Pass 來(lái)做定制化分析或變換。寫(xiě)在 Pass 里的代碼基本上就是和 IR 打交道。你需要遍歷函數(shù)、基本塊、指令讀取操作數(shù)分析數(shù)據(jù)流然后決定要不要修改。第一次寫(xiě) Pass 的時(shí)候我花了不少時(shí)間在“怎么遍歷一條指令的操作數(shù)”這種細(xì)節(jié)上后來(lái)發(fā)現(xiàn)這些 API 設(shè)計(jì)得很順手關(guān)鍵是要理解 IR 的層次結(jié)構(gòu)Module 包含函數(shù)函數(shù)包含基本塊基本塊包含指令。4.2 自己動(dòng)手寫(xiě)一個(gè)打印函數(shù)名的 FunctionPass這里我演示一個(gè)最簡(jiǎn)單的 FunctionPass功能是遍歷模塊里所有函數(shù)打印每個(gè)函數(shù)的名稱和它包含的基本塊數(shù)量。這個(gè) Pass 沒(méi)有修改 IR純做分析適合新手入門(mén)。#include llvm/IR/Function.h #include llvm/IR/Module.h #include llvm/Pass.h #include llvm/Support/raw_ostream.h using namespace llvm; namespace { struct FuncInfoPass : public FunctionPass { static char ID; FuncInfoPass() : FunctionPass(ID) {} bool runOnFunction(Function F) override { outs() Function: F.getName() , BasicBlocks: F.size() \n; return false; // 沒(méi)有修改 IR返回 false } }; } char FuncInfoPass::ID 0; static RegisterPassFuncInfoPass X(func-info, Print Function Info Pass);這段代碼的核心在runOnFunction方法F.getName()獲取函數(shù)名F.size()返回基本塊數(shù)量。outs()是 LLVM 自己封裝的輸出流相當(dāng)于std::cout。RegisterPass這個(gè)靜態(tài)對(duì)象把 Pass 注冊(cè)到opt工具里func-info是 Pass 在命令行中的名字。4.3 編譯 Pass 并用 opt 工具運(yùn)行寫(xiě)完之后需要把源碼編譯成動(dòng)態(tài)鏈接庫(kù)然后讓opt工具加載它。用 CMake 寫(xiě)一個(gè)CMakeLists.txtcmake_minimum_required(VERSION 3.13) project(FuncInfoPass) find_package(LLVM REQUIRED CONFIG) message(STATUS Found LLVM ${LLVM_PACKAGE_VERSION}) message(STATUS Using LLVMConfig.cmake in: ${LLVM_DIR}) include_directories(${LLVM_INCLUDE_DIRS}) separate_arguments(LLVM_DEFINITIONS_LIST NATIVE_COMMAND ${LLVM_DEFINITIONS}) add_compile_options(${LLVM_DEFINITIONS_LIST}) add_library(FuncInfoPass MODULE FuncInfoPass.cpp)然后執(zhí)行構(gòu)建mkdir build cd build cmake -DLLVM_DIR/path/to/llvm-project/build/lib/cmake/llvm .. make編譯完成后會(huì)生成libFuncInfoPass.so。準(zhǔn)備一個(gè)測(cè)試用的 C 文件int add(int a, int b) { return a b; } int main() { return add(1, 2); }先用clang把它編譯成 LLVM IR 文件clang -S -emit-llvm test.c -o test.ll然后加載我們的 Pass 運(yùn)行opt -load ./libFuncInfoPass.so -func-info test.ll正常的話會(huì)輸出類似下面的結(jié)果Function: add, BasicBlocks: 1 Function: main, BasicBlocks: 1就這么簡(jiǎn)單你已經(jīng)用自己的代碼“看到”了 LLVM IR 的世界。后面你想做更復(fù)雜的分析比如統(tǒng)計(jì)函數(shù)調(diào)用次數(shù)、檢查某個(gè)指令模式、做自動(dòng)改寫(xiě)思路都是在這一步上擴(kuò)展。5. llvmpipeLLVM 藏在圖形棧里的“隱身外掛”5.1 llvmpipe 到底在做什么讓 CPU 也能“畫(huà)圖”現(xiàn)在回到開(kāi)頭那個(gè)llvmpipe (LLVM 15.0.7, 256 bits)。llvmpipe 是 Mesa 項(xiàng)目中的一個(gè)軟件渲染器。所謂軟件渲染就是不用 GPU 的圖形管線完全靠 CPU 來(lái)執(zhí)行頂點(diǎn)變換、光柵化、片段著色等操作。什么時(shí)候需要這種東西沒(méi)有 GPU 的服務(wù)器、GPU 驅(qū)動(dòng)出問(wèn)題時(shí)的應(yīng)急方案、虛擬機(jī)和容器里的無(wú)頭渲染環(huán)境。llvmpipe 的聰明之處在于它沒(méi)有用傳統(tǒng)的手寫(xiě) C 循環(huán)來(lái)模擬圖形管線而是把 GLSL 著色器做成的中間表示交給 LLVM 的 JIT 編譯器實(shí)時(shí)編譯成對(duì)應(yīng) CPU 的機(jī)器碼。你寫(xiě)一個(gè)像素著色器它會(huì)為每個(gè)像素生成高效的向量化指令。這就是為什么依賴 CPU 渲染還能保持不錯(cuò)性能的原因——LLVM 的優(yōu)化器把著色器的執(zhí)行效率拉高了一大截。我曾在一臺(tái)沒(méi)有 GPU 的開(kāi)發(fā)機(jī)上用 Mesa 的GLX后端跑過(guò)一些 OpenGL 測(cè)試程序llvmpipe 的幀率雖然沒(méi)法跟獨(dú)顯比但應(yīng)付簡(jiǎn)單的離屏渲染和調(diào)試需求完全沒(méi)問(wèn)題。而且因?yàn)槟闶窃?CPU 上跑圖形管線還能用 GDB 斷點(diǎn)調(diào)試著色器代碼這在 GPU 上是不可想象的。5.2 256 bits 在說(shuō)什么從 SSE 到 AVX2 的向量化進(jìn)化日志里的256 bits指的是 llvmpipe 當(dāng)前的代碼生成目標(biāo)寬度也就是說(shuō)它正在為主機(jī) CPU 的 AVX2 指令集生成 256 位向量指令。要理解這個(gè)數(shù)字的意義得先知道 CPU 的 SIMD 指令是怎么回事。SIMD 是“單指令多數(shù)據(jù)”一條指令同時(shí)處理多個(gè)數(shù)據(jù)。老一點(diǎn)處理器上的 SSE 指令是 128 位寬一個(gè)寄存器可以同時(shí)裝下 4 個(gè) 32 位浮點(diǎn)數(shù)。AVX 把寬度翻倍到 256 位一個(gè)寄存器能裝 8 個(gè)浮點(diǎn)數(shù)。AVX-512 更進(jìn)一步到 512 位但那是重度計(jì)算場(chǎng)景才用得上的。對(duì)光柵化這種天然適合并行的任務(wù)向量化程度越高每秒鐘能處理的片段數(shù)就越多。llvmpipe 在運(yùn)行時(shí)會(huì)探測(cè) CPU 支持的指令集然后讓 LLVM 的向量器生成相應(yīng)寬度的代碼。日志里顯示 256 bits說(shuō)明它啟用了 AVX2。這一點(diǎn)對(duì)性能的影響非常直接向量寬度翻倍理論上同一條指令處理的像素?cái)?shù)也翻倍。如果你想知道當(dāng)前機(jī)器上 llvmpipe 到底能用多大的向量寬度這個(gè)日志就是最直接的答案。5.3 llvmpipe 如何借助 LLVM 的 JIT 實(shí)現(xiàn)高吞吐除了向量化llvmpipe 另一個(gè)關(guān)鍵性能手段是 JIT 編譯。傳統(tǒng)的軟件渲染器是“解釋執(zhí)行”每個(gè)片段執(zhí)行一遍獨(dú)立的邏輯開(kāi)銷(xiāo)巨大。llvmpipe 把著色器程序用 LLVM JIT 編譯成一塊完整的高效機(jī)器碼然后通過(guò)狀態(tài)管理在多個(gè)渲染目標(biāo)之間復(fù)用這塊編譯產(chǎn)物。JIT 這個(gè)技術(shù)其實(shí)和 Java 虛擬機(jī)的 JIT 是同一個(gè)思路運(yùn)行時(shí)編譯比解釋執(zhí)行快比 AOT 靜態(tài)編譯靈活。llvmpipe 的渲染循環(huán)里頂點(diǎn)著色器和片段著色器都會(huì)被單獨(dú)編譯成機(jī)器碼然后交給內(nèi)部的“繪制”邏輯去調(diào)度。它還支持多線程渲染把屏幕切分成多個(gè) tile每個(gè)線程負(fù)責(zé)一塊進(jìn)一步壓榨多核 CPU 的算力。從工程角度講llvmpipe 就是 LLVM 生態(tài)“什么都能接”的一個(gè)絕佳案例。如果沒(méi)有 LLVM 提供的 JIT 能力和優(yōu)化器Mesa 團(tuán)隊(duì)就得針對(duì)每種 CPU 架構(gòu)手寫(xiě)高性能的著色器后端那工作量是不可想象的。6. 避坑總結(jié)構(gòu)建和使用 LLVM 的常見(jiàn)問(wèn)題排查6.1 構(gòu)建階段最常踩的 5 個(gè)坑我見(jiàn)過(guò)不少人在構(gòu)建 LLVM 時(shí)翻車(chē)這里把高頻問(wèn)題整理成一張速查表問(wèn)題現(xiàn)象原因與解法編譯報(bào)錯(cuò)找不到頭文件llvm/IR/Function.h: No such file沒(méi)設(shè)置CMAKE_PREFIX_PATH或LLVM_DIR確認(rèn) llvm-config 路徑正確鏈接階段內(nèi)存不足c: fatal error: Killed signal terminated program并行鏈接任務(wù)太多降低LLVM_PARALLEL_LINK_JOBS或增加 swapGCC 版本過(guò)老報(bào)GCC 5.1之類的不支持錯(cuò)誤升級(jí)編譯器LLVM 15 需要支持 C17 的編譯器Python 腳本錯(cuò)誤FileNotFoundError: /usr/bin/python裝 python3并且確認(rèn) CMake 找到的 Python 版本符合要求ninja 串行執(zhí)行速度極慢只剩一個(gè)核在跑忘了加-j參數(shù)或 CMake 配置階段沒(méi)有生成并行規(guī)則其中內(nèi)存被殺這個(gè)問(wèn)題我印象深刻。有一臺(tái) 8 GB 內(nèi)存的舊服務(wù)器構(gòu)建時(shí)鏈接 clang 這個(gè)巨無(wú)霸經(jīng)常鏈接到一半就被內(nèi)核 OOM kill。后來(lái)我把LLVM_PARALLEL_LINK_JOBS設(shè)為 1讓鏈接串行跑編譯階段保持并行問(wèn)題迎刃而解。6.2 版本不匹配導(dǎo)致的“幽靈報(bào)錯(cuò)”LLVM 的 API 變化很快尤其是新版本之間一些接口會(huì)被重命名或者調(diào)整參數(shù)。我的建議是如果文檔寫(xiě)的是 15.0.7你的環(huán)境恰好是 17 或 18那么舊代碼大概率編譯不過(guò)。這時(shí)候不要強(qiáng)行去改代碼適配先把版本切換一致。判斷版本是否匹配最直接的方法是看llvm-config --version的輸出。構(gòu)建自己的 Pass 時(shí)一定要確保find_package(LLVM)找到的版本和opt的版本一致。我見(jiàn)過(guò)有的環(huán)境變量里同時(shí)裝著系統(tǒng)自帶的老版本 LLVM 和自行構(gòu)建的新版本結(jié)果cmake找到了老的opt拿到的是新的程序加載 Pass 直接報(bào)段錯(cuò)誤。排查方式就是用which opt和opt --version確認(rèn)實(shí)際路徑和版本。6.3 調(diào)試 Pass 時(shí)的高效工作流調(diào)試 LLVM Pass 有一套比較高效的工具組合。第一件法寶是-print-after-all它能讓你看到每個(gè) Pass 之后 IR 的變化定位到底是哪個(gè)優(yōu)化步驟改變了你的 IR。第二件法寶是-debug-onlyyour-pass-name它只打印指定 Pass 內(nèi)部的調(diào)試信息。我習(xí)慣在 Pass 里用LLVM_DEBUG(dbgs() something\n)打日志而不是用outs()。區(qū)別在于普通輸出會(huì)混在工具的正式輸出里可能導(dǎo)致寫(xiě)文件時(shí)污染數(shù)據(jù)LLVM_DEBUG的輸出只走 stderr而且可以用調(diào)試開(kāi)關(guān)控制開(kāi)關(guān)非常干凈。另外如果要分析的是某個(gè)clang源碼文件可以先只針對(duì)這個(gè)文件生成 IR再單獨(dú)跑 opt速度會(huì)快很多。沒(méi)必要每次改動(dòng) Pass 都把整個(gè)鏈接編譯重來(lái)一遍編譯動(dòng)態(tài)庫(kù)、跑 IR 文件、看結(jié)果這個(gè)循環(huán)足夠快了。7. 寫(xiě)在最后LLVM 學(xué)習(xí)路徑的一些個(gè)人體會(huì)老實(shí)說(shuō)LLVM 項(xiàng)目的代碼量是驚人的剛接觸時(shí)那種“從入門(mén)到放棄”的挫敗感我也嘗過(guò)。但如果你能熬過(guò)最初的迷茫期它帶給你的收獲是巨大的。我自己的路徑是先寫(xiě)小的 Pass用 opt 跑測(cè)試文件慢慢理解 IR 的語(yǔ)法和 Pass 的工作方式再回頭去讀 LLVM 的官方教程和源碼。這個(gè)順序比一上來(lái)就啃整個(gè)項(xiàng)目的源碼要友好得多。另外一點(diǎn)體會(huì)是llvmpipe 這類“LLVM 的跨界應(yīng)用”最值得琢磨因?yàn)樗故玖司幾g技術(shù)在非編譯器領(lǐng)域的生命力。你不需要只會(huì)寫(xiě)編譯器才能受益于 LLVM做渲染的可以用它做軟件管線做數(shù)據(jù)庫(kù)的可以用它做查詢編譯做 AI 框架的可以用它優(yōu)化算子。這種可復(fù)用性才是 LLVM 這十幾年生命力不倒的真正秘訣。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
六月狠狠综合| 99爱视频| 日 日干 日日做| 丁香六月在线综合| 亚洲激情在线| 怡红院一二三| 伊人久久婷婷| 国产91在线视频| 国产全是老熟女太爽了| 99热九九这里只有精品| 五月丁香六月色| 99在线精品观看99| 99资源在线| 人妻av在线| 久久综合伊人综合在线| 丁香五月香蕉在线| 综合性爱网| 96精品成人无码A片观看金桔| 五月婷av| 天天综合色综合| 狠狠色丁香婷婷五月| 97在线精品| 五月天色影院| 狠狠色 综合色区| 婷婷啪啪| 91大神操美女| 黄色91在线观看| 日日夜夜狠狠| 丁香色成人| 91dy.av| 操逼巨乳91| 少妇性BBB搡BBB爽爽爽视頻| 成人在线日韩| 九九人人精品| 影音先锋天天日| 色999;丁香五月| 日韩欧洲亚洲| 粉嫩av懂色av蜜臀av熟妇| 激情综合网婷婷五夜| 天天插综合| 99小视频网站| 婷婷五月中文字幕国产| 丁香婷婷五色月| 丁香色婷婷| 噜噜色五月| 99热黄| 熟妇无码乱子成人精品| 五月天精品| 天天操天天操天天操天天操天天操 | 五月香婷婷| 五月天婷婷社区久久综合| www.91av.com| 丁香婷婷浪潮AV久久综合| 五月花婷婷| 九九热在线视频| 色婷婷狠狠爱| 在线观看免费狠狠色丁香香综合| 久久这里只精品| 五月色丁香激情| 五月婷婷激情四季| 久久狠狠色| 成人羞羞啪啪 全 视频| 久久久久久久久月丁| 婷婷五月色亚洲| 五月天另类综合网| 五月婷婷开心激情六月蜜桃| 操操操操操电影网| 精品五月天| 99综合一区| 99热99这里只有精品| 伊人天天色| 亚洲sesesese| 丁香五月婷婷色综合基地| 色五月丁香六月资源站| 婷婷区日本| 可以免费看av网站| 超碰狠狠色| 伊人久久丁香婷婷六月五月综合| 色婷婷五月视频| 丁香婷婷十月| aaa久久| 五月天综合色| 黄网在线播放| AA丁香综合激情| 综合激情网| 日本www五月婷婷| 天天做天天爰天天爽天天无遮挡| 日日操,夜夜爽| 思思热国产| 丁香五月天的网址。| 天天操狠狠操| 可以免费观看的AV| 天天精品视频免费观看| 国精产品一区一区三区免费视频| www,色综合| 99热综合色图| 五月激情视频| 久七香蕉| 99热这里只有精品23| 色色色网站| VA婷婷亚洲| 丁香五月,开心五月,成人婷婷| 婷婷五月激情五月丁香五月| 婷婷五月丁香99| 婷婷五月激情网| 日本色色网站| 1024操逼视频| 中文成人在线| 亚洲五月天激情| 丁香五月丁香伊人| 婷婷五月开心中文字幕在线| 爱的综合网| 久久婷婷五月综合97色一本| 99re热在线视频| 日本WWW九九九| 亚洲第一av| 大香蕉在线观看9| 日韩ww| 丁香五月天视频| 开心五月婷婷| 51精品国自产在线| 碰久久精品w| 丁香五月天堂婷婷| 日逼影音先锋AV男人资源站| 色婷婷丁香社综合| 婷婷情色五月天| 狠狠综合色网| 婷婷丁香97| 欧美久久婷婷| 一區四區歐美日韓| 日韩av网址大全| www开心激情网| 五月婷婷九月婷婷九月婷婷| 99热6这里只有精品| 五月天激情电影| 色五月婷婷丁香五月| 久久这里只有欧美| 深爱激情五月天| 丁香五月激情网| 成人 视频免费观看网站| 开心五月婷婷| 婷婷五月天社区| 日韩成人网址| 色色9 9| 墨西哥毛片内射精| 亚洲精品视频在线播放| 色的色综合| 色天天综合成人网| 26uuu丁香婷婷五月| 婷婷五月丁香久久| 国外亚洲成AV人片在线观看| 亭亭丁香97| 无码九九九九| 亚洲激情校园| 婷婷五月天高清无码| 丁香婷婷激情五月天无毒不卡蜜桃| 99re8这里只有精品99re8热视频| 日韩久热| 五月天婷婷综合色| 五月天婷婷綜合院| 色播五月丁香婷婷| 五月激情在线| 精品一二三区久久AAA片| 亚洲精品一区中文字幕乱码| 久久宗合影| 成人AV在线网站| 丁香婷婷六月婷婷六月婷婷六月婷婷| 五月综合缴情网| 欧美Va婷色| www.久久99| 国产成人精品一区二三区熟女在线| 91在线操逼视频| 激情婷婷99| 欧美婷婷日本| www激情五月天| 亚卅毛片| 久久曰9| 日韩日比视频| 久热这里只有精品视频6| 播五月开心婷婷欧美综合| 亚洲操操操| 久久久91精品| 狠狠做六月爱婷婷综合aⅴ| 婷婷娱乐丁香综合网| 五月天开心网| 在线看的免费网站| 欧美内射AA| 伊人久久五月天| 五月婷婷偷拍| 婷婷五月天亚洲综合网| 午夜性爱影视一区77| 99热精品无码| 久久婷婷综合网| 欧美成人精品A片免费一区99| 婷婷五月天丁香综合网| 六月激情婷婷色| 五月天啪啪| 色五月天电影| 91丨九色丨熟女|老版| se色99| 激情五月色婷婷| 97福利视频| 97婷婷久久丁香| 激情婷婷丁香五月天小说| 黄色AAAAA| 狠狠爱综合| 天天综合网~91| 激情婷婷丁香色情五月天| 五月丁香啪啪啪| 乱精品一区字幕二区| www.久久9| 色综合久久88色综合天天人守婷| 日韩啪啪视频| www.9797国产| 丁香五月开心婷婷| 嫩草极品| 五月丁综合在线观看| 亚洲欧洲国产精品| 五月激情综合性爱| 五月色丁香视频精品| 色婷视频| 天天爱天天做天天日| 思思久久99| 五月Huangsewang| www色色com| 99综合视频| www.91av.com| 成人超碰网| 日韩一级A片黄色| 五月天婷婷丁香社区| 色色色热| 欧美性二区| 日韩在线一级| 久久图色4| 精品99只有。| 热91久| 五月丁香婷婷在线综合蜜桃| 涩五月婷婷| 99操碰| 久久婷婷五月天| 91五月花丁香| 国产精品五月天婷婷| 强壮公让我夜夜高潮A片视频| av在线资源| 色私五月婷婷| 色噜噜狠狠色综合成人99| 丁香桃色网| 91人人爱| 亚洲激情97五月天| 天色色综合网| 极品人妻VideOssS人妻| 91在线操| 久久婷婷网站| 天天操中文字幕| 激情综合啪啪啪| 婷婷色丁香五月| 九九综合网色全集 | 97人妻碰碰中文无码久热丝袜| jiujiu无码五区| 性综合网| 丁香月五月天婷婷久久| 亚洲精品国产A久久久久久| 天天色情站| 综合网亚洲| 五月色网| 少妇大叫太大太粗太爽了A片| 综合欧美五月婷婷| 无码激情AAAAA片-区区| 亚洲色vA| 丁香六月激情毛片| 日本91在线| 天天射综合网站| www.狠狠| 天天插轮理| 丁香五月天久久| 热99re| 色婷婷色综合久久精品V| 婷婷开心激情综合五月天| 丁香五月天久久| 3www激情| 91超级碰在线视频| 丁香五月五月婷婷| 182TV亚洲| 亚洲综合无码| 狠狠干天天内射| 国产精产国品一二三在观看| 99热12| 9|在线观看视频| 丁香六月欧美| 大香蕉久久| 丰满女老板BD高清A片| 99热这里只有精品33| 91人人爱| 玖玖在线| www,欧美干干干干干干| 婷婷色基地在线看 | 97自拍视频在线| 97操操| sewuyuejiqingwang| 日B日潘金莲BB| 六九色综合婷婷五月天| 日日夜夜狠狠婷婷色| 久久人妻少妇嫩草AV| 狠狠色噜噜狠狠| 另类视在线| 色播激情五月天| 熟女人妻视频| 人人爱摸视频| 777丁香六月青青草婷婷综合久月| 五月婷狠狠| 女人天堂久久| 日本五月丁香| 成人午夜免费电影| 国产精品扒开腿做爽爽爽A片唱戏| 能直接看的AV网站| 婷婷五月电影院| 疯狂做受XXXX高潮A片动画| 欧美激情综合色丁香婷婷五月天| 久久激情综合| 日本天堂网站99| 无码人妻激情| 区区欧美你爱| 在线不卡视频| 激情婷婷22月间| 五月激情偷拍| 综合激情站| 99re66热这里只有精品| 亚洲第二AV| 六月丁香五月婷婷| 日韩另类在线观看| 99热这里只有精品一区| 国产99美少妇| 91婷婷色 | aV欲望人妻中文字幕| 99视频精品在线| 久色欧美| www 五月天 com| 在线观看av网站| 欧美成人AAA片一区国产精品| 天天综合色丁香| 婷婷五月天伦理| 97色女人在线| cao视频,现在观看| 激情网五月婷婷| 97精品自拍视频| 五月天久久久| 97伊人综合婷婷| 久久婷婷精品| 婷婷六月啪啪| 五月婷婷亚洲色视频| 婷婷丁香午夜综合影视| 日本怕怕视频| 97热精品| 国产44页| 婷婷热色| 尤物一区二区| 五月丁香啪啪| 五月开心激情| 精品人人操| 色婷婷社区| 亚洲第一色色色色| 这里只有精品视频视频在线观看| 91热视频色网站| 激情AV综合| 超碰精品在线| 色色亚洲视频| 色情婷婷| 成人av在线电影| 久久五月天激情| 亚洲婷婷月丁香五月| 婷婷射丁香| 99热在线爱| 五月香六月婷| 中文网婷婷字幕婷| 久在线综合69| 4399无码视频二区| 一级AV片| 青草视频在线观看视频| 激情第四色| 天天狠天天叉| 亚洲激情婷婷| 久机视频这只有精品| 99干日本| www.91九色| 久久久久久久人妻| 99视频只有精品| 久 久9 9 热 视 频| 五月天婷婷色播在线网| 激情影院免费视频婷婷五月天| 亚洲国产精品五月天| 婷婷99视频精品| 五月丁香激| 天堂久久性| 丁香五月婷婷综合91| 182tv992tv人之初午夜免费观看| 综合网精品99| 色色综合热| 日本nghangse中文字幕| 六月丁香成人| 成人午夜免费电影| 午夜亚洲国产精品av一区二区| www.婷婷,com| 五月丁香色色网| 九九99免费视频| 91婷婷色| 天天日日夜夜| 久久久99久久| 狠狠综合网| 激情婷婷五月天| 激情综合五月| 性爱网五月婷婷| 99久久超级| 91a片爽| 婷婷色色色| 日本少妇AA一级特黄大片| 五月色丁香婷婷综合| 色婷婷最新域名| 91综合在线视频| 九色视频91疯狂| 另类在线| 婷婷丁香五月激情中文字幕版| 丁香五月天婷婷久久综合| 操丝袜视频影院导航| 国产,欧美,日韩,性爱| 五月丁香欧美综合| 久久激情五月天| 91久久久久久| 国产乱子轮XXX农村| www久久久久久久久久久| 婷婷桃色网| 天天综合91入口| 大香蕉99热| 色色综合色视频| 极品 少妇 内射| 秋霞三及片| 五月99久久| 一级性爱视频| 9色婷婷| 4399欧美另类视频| 色色热99| 五月丁香六月综合激情无码软件亮点 | 久操热线| 色婷五月天网站| 亚洲天天操| 无码人妻电影| 亚洲网综合在线| 精品导航在线x不卡| 日本三级中国三级99| 激情五月天噢美| 青草激情在线| 日韩999| 亚洲精品又粗又大又爽A片| 一区二区aV电影免费看| 色狠狠五月天| 精品A√| 中文字幕在线播放视频| 9|人妻人人操| 99精品久久| 这里只有九九精品| 九九青青草成人| 电影91久久久| 久久综合五月天| 亚洲激情视频网| 婷婷六月色开| 婷婷久久综合| 久久久噜噜噜久久人妻| 五月丁香亭亭| 97碰成超视频免费视频| 成人小说 五月天 婷婷| 色欧美影院| 国产成人精品123区免费视频| 日本在线观看91| 色色网站免费在线视频| 亚洲五月婷婷| 这里只有精品96| 五月丁香成人| 亚洲精品激情| 天天干天天拍| 激情婷婷丁香五月天| 这里只有精品视频国产| 五月婷婷伊人网| 亚洲成人网站在线播放| 色综合77777| 久久婷五月| 秋霞三及片| 色五月激情五月| 91综合视频在线| 五月丁香五月丁香| 涩综合网| 色婷婷综合丁香五月天| 另类小说婷婷色| 婷婷色在线| 婷婷丁香www视频日本韩国| 亚洲激情高潮| 五月天六月色| av色婷婷| 日亚二欧美| 色99xx| 五月情婷婷五月| 色九九综合| 综合www色| 色播丁香婷婷五月激情| 99国产精品久久久久久久久久久| 色色爽爽天天| 五月花婷婷| 开心五月婷婷伊人| 欧美综合在线五月天色婷婷| 亚洲视频一区| 婷婷五月天受日本法律保护| 婷婷五月天激情网| 激情99| 夜夜操夜夜操| 大香蕉在线观看9| 99久久综合精品五月天| 成人综合网站| 五月婷婷视频啪啪美女| 五月婷视频| 玖玖综合网| 久久婷婷五月天| 婷婷国产五月天17c| 五月天久久成人| 色噜噜婷婷| 久热9| 日本久久高清| www.henhenl| 天天爽天天| 加勒比久热| 久久精品亚洲一级牲爱综合| 国产精品成人网址| 99热这里只有精品18| 色婷丁香91| 婷婷天天综合| 婷婷操无码| xfplayav在线| 色99综合色88| 国精产品久久| 欧美日韩国产一二区| 99热这里只有的精品视 | 激情开心五月天| 色999亚洲人成色| 日本九九九九| 久久婷婷五月国产激情综合片| 夜夜爱网站| 六月丁香婷婷综合色播| 欧洲色色| 五月天久久成人| 久久性综合| 色色色色色爱| 久久九九婷婷| 操操天堂| 26UUU| 99性爱| 丁香六月激情综合网| 日本一级黄色片。| 激情五月婷婷色| 色五月中文字幕| 色玖玖综合| 二色AV| 激情综合五| 午夜九九电影| 特黄三级又爽又粗又大| 狠狠爱婷婷丁香| 婷婷久久亚洲| 欧美三级A做爰在线观看| 99色丁香婷婷综合网| 五月天操逼激情| 26uuu精品一区二区| 秋霞AV淫| 婷色五月天| 亚州AV超碰人人操| 99久久99视频| 色色色综合网| 欧美人人草| 激情久久久久久久久久| 天天干天天拍| 乱色色色| 天天摸天天肏| 人与禽A片啪啪| 激情五月天在线视频| 激情综合99| 久久久久9| 开心五月综合激情综合五月| 波多野结衣AV无码Porn| 狠狠色丁香| 这里只有精彩亚洲视频推荐| 五月婷婷婷综合网| 丁香五月天啪啪| 九九热视频免费| 91久久综合| 九九AV| 99性视频| 九九99在线观看视频| 婷婷丁香成人色综合| 殴美日韩成人| 五月婷婷久久激情| 六月天婷婷| 伊人碰碰碰| 搡BBBB搡BBB搡18| 久久亚洲激情五码| 久久网站免费亚洲| 五月天激情黄色网址| 久99久在线| 婷婷狠狠久久| 怡红院AV亚洲一区二区三区H| 激情五月婷婷网| 91久久久久久| 婷婷婷五月香蕉| 亚洲高清在线| 精品视频这里只有精品| 伊人影院久久网| 九九热这里只有精品6| 午夜电影网VA内射| 婷婷六月色| 99热免费18| 色播五月婷婷| 丁香五月婷婷在线| 伊人五月久久| 丁香五月天堂| 99九九热视频免费| 国产av一区二区三区| 日本久久婷婷| 日日夜夜狠狠干| 欧美天天爽| 久久99久久久| 婷婷色色综合| 97香蕉碰碰人妻国产欧美| 色爱五月天| www.久热| 色婷婷五月天偷拍| 天天五月天综合网址| 久9免费视频| 五月丁香啪啪综合| 天天干天天爽天天操| 在线视频你懂得| 天堂网色色| 激情无码五月天| 丁香婷婷老熟女综合网| 中文字幕 中文字幕明步| 丁香五月停停基地| 伊人久久五月天综合| 综合激情啪啪| 久久婷婷五月天激情四射| 五月婷婷av在线| 久热九九| 91碰碰| 五月婷婷综合网| 午夜国产精品AV在线播放| 激情深爱五月婷婷| 亚洲成人在线免费| 色婷婷五月综合在线| 潮汕成人AV片在线| 亚洲激情四谢| 无码免费人妻A片AAA毛片西瓜| 色色色色五月| 亚洲欧美婷婷五月色综合| 色色亚洲五月天| 日韩成人电影Av| 婷婷欧美| 五月天啪啪| 五月停停999| 国产激情综合五月久久| 激情小说婷婷五月| 99热99色| 天天久综合| 五月婷婷丁香综合网| 99re热久久| 五月天欧美 另类小说| 激情综合4月| 亚洲va欧美| 国产 码在线成人网站| 婷婷五月天激情小说| 99色热视频| 99久超碰| 国产熟女一区二区三区五月婷| 小骚穴电影| 五月天婷婷爱| 色婷婷久久综合| 91色五月| 丁香婷婷久久| 亚洲激情免费久久| 桃色激情婷婷伊人网| 色婷婷激情小说网| 狠狠干狠狠干狠狠干狠狠干| 成人欧美Va| 国产精品视频久久99| 乱色色色| 久久99网| 久久激情五月婷婷| 夜夜干 夜夜操| 99色视频| 操操操97| 婷婷五月丁香激情图片 | 大香蕉婷婷五月| 色狠狠色综合久久久绯色AⅤ影视| 欧美日本黄色| 久久永久网址| 五月天成人网婷婷| 五月婷婷网站| 激情小说五月天| www色五月| site:pnnrt.com| 成人无码髙潮喷水A片| 国产人妻777人伦精品HD| 五月丁香久久综合91| 香蕉色色网| 超碰猛烈的性猛交| 大香蕉久操| 另类图片五月天婷婷| 丁香五月天激情综合网| 亚洲激情婷婷| 色五月婷婷中文字幕| 九九热精品在线| 伊人99久久| 9久久久| 99热老网站| 婷婷五月天无码视频| 亚洲成人va| 97亚洲婷婷| 天天操夜夜操| 影音先锋男人AV资源站| 亚洲五月激情| 这里只有精品视频国产| 夜丁香综合| 丁香激情久久| 影音先锋91网站在线观看| 9999热精品| 大香蕉人妻| 婷婷免费无视频| 五月丁香六月激情视频| 九九热精品在线| av在线免费播放观看| 丁香婷婷色| 五月综亚洲| 色婷婷亚洲婷婷在线观看| 天干夜夜操| 不卡成人免费| 激情五月综合网| 久久久久久丁香五月| 99久热在线精品| 七七婷婷综合| 婷婷六月激情| 色情五月天婷婷| 影音先锋色婷婷| 色五月,com| ww久久| 婷婷五月婷婷五月| 97碰啪啪| 色九月综合| 色色色综合网| 色亭亭五月天丁香综合AV - 百度 - 百度| 婷婷激情综合| 九九www| 五月丁香综合精品| 亚洲av网站在线观看| 婷婷中合| 婷婷激情肏屄网| 四月婷婷丁香五月| 日日影院 | 色婷婷97| 精品久久久人妻| 国产人妻777人伦精品HD| 2020日日干| 久噜久噜| 在线播放成人网站| 日本欧美国产| 天天爱夜夜爽| 中文毛片无遮挡高潮免费| 亚洲小电影在线观看黄999| 五月婷婷激情中心| 99啪啪视频| 久婷婷五月综合欧美| 五月天激情小说婷婷基地| 五月花激情| 超碰99热精品| 伊人久久五月天综合| 五月婷婷五月天| 综合在线网| 国内精品玖玖| 婷婷五月花| 九九99免费视频| 色色色热热热| 秋霞九九无码| 欧美日韩大黄| 思思re99视频在线观看| 国产精品日本一区二区在线播放| 伊人综合婷婷| 成人在线精品| 色99在线| 久久精彩视频99| 激情久久五月网| 天天日天天操心| 91操在线视频| 丁香六月天| 91精品久| 久久久人妻系列| 又大又粗九一在线| 综合xx网| 99久久99久久综合| 久热99| 婷婷午夜精品久久久| 丁香五月综合久久| 激情五月色播五月| 99情色五月天| 五月婷婷狠狠干| 在线看九一V图片| 婷五月丁香| 伊人激情| 精品婷婷五月天| 超碰久热| 色婷婷在线视频久| 大香蕉久| 国产综合81p| 婷婷免费视频| av五月丁香婷婷网| 日日夜夜狠狠操| 超级碰 久久9| 丁香五月六月婷婷怡红院| a免费在线| 欧美爆乳一区二区三区| 1024AV视频| 丁香五月天网友自拍啪啪啪视频| 99精品视频播放| 五月天停停成人网| 色婷婷小视频| 婷婷香五月天| 婷婷丁香综合| 玖玖午夜视频| 久久久.COM| 99久久婷婷国产综合| 九九香蕉网| 日本婷婷| 成人色五月天| 六月婷婷综合网2| 色丁香婷婷| 日本 色综合| 99人妻碰碰碰久久久久视| 狠狠五月激情丁香六月| 久久婷婷色| 性色欲情 网站| 九九色婷婷| 五月丁香六月激情网| 99人人爽| 天天色天天| 人妻激情在线| 久久这里有精品| 五月丁香啪啪拍| 五月综合人妻| 色五月中文网| 黄色片区子| 日韩婷婷| 婷婷激情5月| 免费观看2018www黄色操逼网站| 色五月激情网| 色色婷婷丁香| 精品夜夜澡人妻无码AV| 思思热在线免费视频| 久草丁香婷婷五月天婷| 丁香六月婷婷开心| 思思久久精品视频| 色婷婷av综合网| 91视频综合网| AV色五月婷婷| 欧美性爱丁香五月| 色婷婷精品视频| 亚洲午夜AV| 国外亚洲成AV人片在线观看| 婷婷五月丁香伊人| 九九综合伊人| 人与禽A片啪啪| 丁香婷婷五月| 婷婷五月天激情网| 日本一级黄色片。| 天天综合色| 婷婷欧美偷拍综合| 91碰免费视频| 91九色无码日韩| 99er免费在线观看| 丁香五月婷婷高清| 五月丁香啪啪啪| 久久网思思| 91干在线| 欧美性猛交99久久久久99按摩| 狠狠草在线观看| 天搞天天天天天| 北条麻妃伊人 | 亚州欧美国产久精国产99综合视频| 99se丁香| 久久婷婷热| 亭亭五月激情亚洲在线| 91九色 婷婷| 国产古装妇女野外A片| 五月丁香婷婷导航视频| 国产阿姨日皮艹逼内射视频| 婷香狠狠爱五月| 久久99热这里只频精品6学生| 五月丁香六月婷婷亚洲视频| 色婷婷丁香| 99在线看视频| www.色婷婷.com| 天天爽,夜夜爽| 婷婷六月丁香综合| 操人视频91| 欧美性生交XXXXX无码小说| 丁香 久久| 欧美日韩91| 99热这里只有精品3| 九九无码视屏| 国产色色在线| 日本三级毛片| 色www久视频| 色五月婷婷基地| 色综合色综合网| 激情婷婷丁香五月天小说| 色五月婷婷天堂| 亚洲亚洲人成综合网络| 婷婷的久久网站| 五月婷婷无码| 五月综合激情图片| 91久久久久久久久| 丁香六月综合激| 久久人妻熟女一区二区 | 五月丁香大香蕉| 综合色视频| 久久caop| 另类激情综合| 91九色在线视频| 99r这里| 成人色色综合| 超碰在线国产| 射久久丁香五月| 内射 无码 伊人| 天天综合色| 97操操操| 五月天社区婷婷丁香社区| 久久久人妻系列| 婷婷五月天色综合翘| 丁香六月婷婷综合| 踪合专区啪啪| 久久婷婷五月综合色天| 激情婷婷丁香五月| 亚洲综合激情五月久久| 99精品自拍| 26uuu欧美| 开心婷婷五月天激情网| 亚洲中文乱字字幕线在永久| 电影爱拉战争免费观看| 色九区| 六月丁香色色| 婷婷爱五月| 丁香五月 激情文学| 亚洲激情四谢| 五月婷婷爽爽爽| 国产伦亲子伦亲子视频观看| 亚洲中文乱字字幕在线永久| 97AV在线视频| 丁香伊人网| 色婷六月| 播五月开心婷婷欧美综合| 性色人人爽| 91vip在线观看| 国产熟女大叫受不了| 六月丁香激情| 99re青青草| 色五月色情| 啪啪操网| 超碰99成人在线| 九九色中文| 丁香色色五月| 97色一二三| 97操女视频| 五月天激情日色在线| 色99xx| 九色视频入口91| 91人人妻人人操人人爽| 久久久久视剧HD| 99综合99| 狠狠色狠狠爱| 五月婷久久草| 婷婷九月亚洲| 欧美六月| 五月天丁香六月综合| 色色色色欧洲| 色婷婷综合久色AV五色最新| 色热久资源| 狠狠干天天内射| 婷婷五月俺要去| 六月丁香婷婷开心综合基地| 色五月婷婷婷婷| 五月婷婷丁香综合网| 99爱在线精品视频免费观看| 月婷婷婷婷五月| 综合伊人久久| 五月天激情四射| 色婷婷久久| 欧美性色A片免费免费观看的| 久久精品国产AV一区二区三区 | 狠狠ri| 欧美日本99| 91热视频色网站| Av大香蕉| 天天爽—爽| 亚洲va日| 丁香五月另类小说在线阅读| 色五月婷婷五月久久| 蜜臀嫩草| 操骚货在线| 激情综合五月天| 五月丁香六月激情在线| 综合五月天| 超碰99热精品在线| 碰碰碰91| 久9热| 亚洲婷婷丁香五月天激情小说| 天天干天天 亚洲| 色久天| 午夜成人天堂久久无码日韩久久| 泰州成人视频| 精品人妻一区二区三区在| 婷婷性爱五月天丁香网| 九九大香视频| 狠狠看狠狠| 狠狠狠狠狠草| 无码动漫av| 婷婷在线视频| 亚洲成人在线观看av| 天天艹| 婷婷综合激情| 天天干肏夜夜| 五月天社区| 97综合在线| 91在线精品一区二区| 色五婷婷| 婷婷五月天777| 九九亚洲视频| 色区久久| 久热99视频在线观看| 99网址在线看| 国产综合激情五月久久| 青草五月天| 婷婷社区五月天| 在线超碰免费| 日韩欧洲亚洲| 99热99这里有免费的精品| 久久99热免费最新版| 五月丁香综合激情| 丁香五月 无码| 成人看片网站| 十月丁香九月婷婷综合| 激情色色| 有码一区二区三区| 91Chinese在线| 丁香六月亚洲综合| 精品久久99码| 就爱日五月天| 五月丁香猫咪久久婷婷综合视频激情四射网入口 | 偷拍91九色| 精品综合久久久久久五月天| 干一干xxxx| 夜夜嗨一区二区三区直播内容 | 五月丁香婷婷色播无码| 久久这里都是精品免费| 人人干人人操人人摸| 狠狠色综合网| 金品在线视频99| 丁香色播五月天| 色五月天堂| 超碰人人摸AV| 激情q青青草在线婷婷| 丁香六月婷| 超pen个人视频97| 色综合色五月| 天天色天天爱天天爱天天爱y| 大香蕉av在线| 涩综合网| 婷婷五月天开心激情网| 国产69久久久欧美黑人A片| 激情视频91| 婷婷丁香在线播放| 国产人妻777人伦精品HD| 欧美日韩成人一区二区| 五月花丁香婷婷| 操人91| 中文精品在| 久久ab| 91妻人人爽人人看片| 欧美日韩成人在线| 五月开心网| 丁香五月婷婷综合激情哟哟哟| 涩涩五月天综合| 色婷婷伊人| 丁香九月综合在线| 偷拍视频五月天| 色婷网| 丁香五月婷婷超碰在线| 天天做天天爱| 天堂va久久久噜噜噜久久Va| 米奇激情婷婷| 99久视频| 色婷婷小说| 在线观看亚洲视频影院| 色欲色香,www,com| 热久久视频99| 大战熟女丰满人妻AV| 色 免费网站视频| 午夜成人网站在线观看| 91丨九色丨国产在线| 五月丁香狠狠| 青青草原伊人网| 99热免| 九九re精品视频在线观看| 激情小说婷婷五月| 综合六月久久| www婷婷色情网| 性爱久久| WWW·天天操·视频?| 超碰AV在线| 久草五月婷婷| 婷婷五月丁香六月| 91九九九九| 人人人人人人人人人草| 色五月婷婷网| 免费AAAAA网| 色婷婷综合网| 超碰91在线| 五月丁香操婷逼| 激情啪啪五月| www久久艹| 99手机在线精品视频| 狠狠色成人影片| 五月天丁香综合在线| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 少妇真实被内射视频三四区| 色欲Av五月天| 九九色热| 婷婷五月天国产手机在线视频观看| 色综合五月| 丁香五月天激情五月天激情五月天激情网| 26uuu精品一区二区| 久碰视频| 六月色婷婷| 99这里只有精品视频在线| 丁香六月天| 呦呦v线| j五月香在线| 永久地址 色| 久久亭亭电影| 天天做天天爽| 色婷婷五月在线| www超碰| 国产乱码久久| 影音先锋女人AA鲁色资源 | 香港九九六区八区99| 激情小说视频图片| 69人妻人人澡人人爽久久| www.婷婷.com| 婷婷九月色| 九九在线视频| 一级A片天天操夜夜操| 日本偷拍九九九| 婷婷激情综合| 日良久久| 日本色色色| 天天综合永久| 六月丁香啪| 九九综合色综合| 色五月激情视频在线综合| 午夜性做爰电影| 婷婷五月丁香六月天亚洲综合| 99在线播放| 色色色婷婷五月天| 激情q青青草在线婷婷| 九九热123| 激情五月天com| 人人操AV| 国产精品久久久久久久久久| 丁香美女主播视频在线观看| 久久9RE热视频精品98| 乱码操操| 激情网站综合五月天| 爱iii做iiii日日| 波多野结衣AV无码Porn| 成人噜噜网| 伊久大香蕉| 六月丁香五月婷婷| 五月丁香六月色婷| 国产精品久久久久久久久久久久| 五月丁香淫淫婷婷婷| 欧美肉大捧一进一出免费视频| 亚洲另类婷婷五月综合| 成片免费观看大全| 亚洲六月婷婷| 日本狠狠爽| 99欧美三级视频| 色色婷婷丁香| 热久久66| 亚洲AV无码影院| 婷婷久久五月天| 丁香婷在线| 性爱网五月天| 亚洲蜜桃精久久久久久久久久久久 | 色色色色色色色色五月先| 国产婷婷色综合AV蜜臀AV| 久久久久丁香婷婷五月天| 4399成人黄A片| 色婷婷色综合久久精品V| 欧美激情综合色综合啪啪五月| 久1色色| 日本三日本三级少妇三级66| 99亚州综合精品成人网| 色天天综合| 91色久| 国内精品免费一区二区2009| 色欲丁香| 蜜乳国产网站| 欧美三级欧美一级| 五月婷婷亚洲天堂97色婷婷| 久久久999精品| 五月停停丁香| 久热91| 91av色色乱视频| 亚洲九区| 日本色婷婷| 五月丁香av在线| 精品女人九九九| 色婷插| 思思热精品在线| 日韩AAAAAAAAAAA片| 欧美成人无码高清一区二区三区| 94干大香蕉| 色婷婷基地 | 97人人操在线| 五月婷婷人妻| 婷丁五月| 成人AV中文字幕| 桃色五月婷婷| 婷婷五月激情小说| 天天舔天天爽| 插插五月天| 丁香五月天导航| 久久综合网桃花| 丁香网五月天| 五月天色丁香| 婷婷五月天影院| 我要看激情五月天| 日日噜狠狠色综| 激情AV在线| 99久久天堂婷婷| 99网| 五月花激情| 天天天在线观看| 五月丁香无码| 婷婷五月天成人动漫 | 婷婷97狠狠成人网站| 人妻激情综合| 天天爱夜夜爽| 五月丁香综合啪啪対白| 综合色播| ′久久99一| 97ai婷婷| 日韩ww| 亚洲成av人影院| 五月激情婷婷丁香| 超碰人人91| 婷婷网五月天| 99热这里只有精品最新网址| 久久伊人日日夜夜|