《電子技術應用》
您所在的位置:首頁 > 測試測量 > 設計應用 > LabVIEW 編譯器深層解析
LabVIEW 編譯器深層解析
摘要: NILabVIEW軟件是一種多規范的圖形化編程環境,含有多種概念,包括數據流,面向對象,以及事件驅動編程。LabVIEW也是跨越多種平臺的,能夠很好地用于多種操作系統(OSs),芯片組,嵌入式設備,以及現場可編程門陣列(FPGAs)。LabVIEW編譯程序是一種精密的系統,在過去的20年中具有令人矚目的發展。探索NI公司的LabVIEW編譯程序的處理過程以及近來編譯程序的創新。
Abstract:
Key words :

  目錄

1. LabVIEW編譯程序處理過程
2. DFIR提供一種高級的中間表示
3. DFIR分解與優化
4. DFIR后端變換
5. LLVM提供一種底層的中間表示
6. DFIR與LLVM協同工作

  編譯程序設計是一個復雜的話題,即使對內行的軟件工程師來說也要考慮很多專業知識。

  NI LabVIEW軟件是一種多規范的圖形化編程環境,含有多種概念,包括數據流,面向對象,以及事件驅動編程。LabVIEW也是跨越多種平臺的,能夠很好地用于多種操作系統(OSs),芯片組,嵌入式設備,以及現場可編程門陣列(FPGAs)。LabVIEW編譯程序是一種精密的系統,在過去的20年中具有令人矚目的發展。探索NI公司的LabVIEW編譯程序的處理過程以及近來編譯程序的創新。

  LabVIEW編譯程序處理過程

  首先一個VI的編譯是類的擴展,主要負責將隱含的類解析為適于終端輸出與檢查句法錯誤的類型。在類擴展之后,VI從編輯模型轉化為可以被編譯程序使用的數據流中間表示(DFIR)圖表。編譯程序執行幾種變換,例如在DFIR圖表分解過程中的死碼刪除,優化,并為代碼生成做好準備。DFIR接下來被轉化成底層的虛擬機(LLVM)中間表示(IR),有關IR的一系列掃描被運行,以利于更進一步的優化與底層化——最終——變為機器碼。

  DFIR提供一種高級的中間表示

  DFIR是一種分級的,結構圖代碼的,基于圖表的IR。類似于G代碼,DFIR包含很多具有端點的節點,能夠與其它端點相連。一些節點,例如框圖,含有圖表,這些圖表也可以依此類推地包含其它節點。

  圖1顯示了一個簡單VI的最初DFIR。當LabVIEW首次為VI創建一個DFIR時,這是一種G代碼的直接翻譯,DFIR圖表中的節點具有像G 代碼中節點一樣的一對一的對應性。隨著編譯程序的執行,DFIR節點有可能被移動,部分分離,或者是增加,然而編譯程序將仍然保留原有的特性,例如 LabVIEW代碼中固有的并行特性。

查看一個簡單VI 的初始 DFIR 圖表

圖 1. 查看一個簡單VI 的初始 DFIR 圖表

  DFIR能夠為LabVIEW編譯程序提供兩種可觀的優勢:

  1. DFIR將編輯程序從編譯程序的表示中分離——在DFIR出現以前,LabVIEW具有一個單獨的VI表示,由編輯程序和編譯程序共享。這樣在編譯過程中,阻止了編譯程序修改表示,也會使引入編譯程序優化很困難。DFIR引入了一系列的優化與分解措施,能夠極大地提高LabVIEW代碼的性能,僅要求結構圖節點與連線被斷開并可以移動。

  2. DFIR作為多個編譯程序的前段與后段的公用連接點——今天,LabVIEW能處理很多明顯不同的任務。類似地,LabVIEW也為用戶提供了多種算法模式,例如LabVIEW MathScript,C一體化,仿真圖表,以及狀態表(statecharts)。DFIR提供了一種常用IR,它由前端生成而由后端使用,使不同組合的重新使用更加便利。

  DFIR分解與優化

  一旦進入DFIR,VI運行一系列的分解變換,來縮減或標準化DFIR圖表。在DFIR圖表徹底分解后,DFIR優化掃描開始。有超過30種分解與優化能夠提高LabVIEW代碼的性能。請仔細查看圖2和3顯示的簡單VI,它被稱為Trim Whitespace VI(Trim Whitespace.vi),來自vi.lib。

這是任意 DFIR分解前的 VI

圖 2. 這是任意 DFIR分解前的 VI

上面是Trim Whitespace.vi 結構圖的定義

圖 3. 上面是Trim Whitespace.vi 結構圖的定義

  首先,Trim Whitespace.vi被內聯到調用VI,如圖4所示?,F在,不可達代碼與死碼刪除運算可以簡化代碼。第一個條件結構將總是執行相同的分支,因為輸入的是一個恒定值。因此,其余的分支可以同整個第二個條件結構一起移走,因為它們從不執行。循環不變式代碼移動將匹配模式基元(Match Pattern primitive)移出循環框,確保其只被執行一次,如圖5所示。

subVI內聯到調用程序,導致一個 DFIR圖表等價于該 G代碼

圖 4.  subVI內聯到調用程序,導致一個 DFIR圖表等價于該 G代碼

 

一次執行產生優化的 DFIR圖表

圖 5. 一次執行產生優化的 DFIR圖表

  DFIR后端變換

  在DFIR圖表被分解與優化后,后端變換開始執行。這些變換評估并注解DFIR圖表,為最終將DFIR圖表降低為LLVM IR做好準備。聚叢程序負責將節點歸為簇,這些簇可以并行運行。替代程序識別何時分配的數據可以重新使用,何時必須制作副本。在替代程序運行后,分配程序預留出VI執行所需的內存空間。最后,編碼發生器負責將DFIR圖表轉化為可執行的機器指令用于目標處理器。

   LLVM提供一種底層的中間表示

  LLVM是一種多用途,高性能,源代碼開放的構架,原來是伊利諾斯州州立大學的作為研究項目而發明的。LLVM因為其靈活性,簡潔的API以及不受許可的限制,被廣泛用于學術研究與工業生產。在LabVIEW 2010版本,LabVIEW編碼生成器使用LLVM來生成目標機器碼。在從DFIR圖表創建編碼流后,LabVIEW訪問每個指令并創建一個等價的 LLVM表示。軟件會激活多種優化掃描,最終,LLVM準時制(JIT)構架在內存中創建可執行的機器指令?,F在LabVIEW可以使用LLVM來執行指令綜合,跳變線程,聚合標量替代(scalar replacement of aggregates),條件擴展,尾端調用刪除,循環不變代碼移出,死碼刪除以及循環展開。

 

  DFIR與LLVM協同工作

  DFIR是高級的IR具有并行性,而LLVM是底層IR,具有目標機器特性的認知,二者協同工作以優化開發者為處理器結構而編寫的LabVIEW代碼,它們能夠在處理器上被執行。

  – Chris Wood

  Chris Wood是NI公司LabVIEW方面的傳感器軟件工程師。他擁有德克薩斯A&M大學計算機工程專業的學士學位。

   – Craig Smith

  Craig Smith是NI公司的首席軟件工程師。他擁有德克薩斯A&M大學計算機科學專業的學士與碩士學位。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          久久久久久一区| 欧美日韩亚洲免费| 蜜月aⅴ免费一区二区三区| 久久久午夜精品| 亚洲视频导航| 国产亚洲精品aa午夜观看| 国产精品99久久99久久久二8| 亚洲国产日韩欧美一区二区三区| 国产亚洲欧洲一区高清在线观看| 亚洲综合日本| 亚洲精品国精品久久99热| 国产日韩亚洲| 日韩视频精品| 久久夜色精品国产噜噜av| 国产精品美女www爽爽爽视频| 欧美日韩国产一中文字不卡| 国产一区二区三区四区三区四| 国产精品成人va在线观看| 欧美一区二区三区视频免费播放| 久久成人18免费观看| 性色av一区二区三区在线观看| 国产精品一区二区在线观看不卡| 亚洲国产精彩中文乱码av在线播放| 好吊妞**欧美| 亚洲一区二区三区中文字幕在线| 最新成人av在线| 亚洲精品国产拍免费91在线| 亚洲国产毛片完整版| 亚洲午夜精品一区二区三区他趣| 原创国产精品91| 老鸭窝亚洲一区二区三区| 国产亚洲成av人在线观看导航| 在线观看91精品国产入口| 一区二区视频欧美| 欧美日韩系列| 欧美伊人久久久久久久久影院| 一区二区视频在线观看| 国产一区二区三区高清在线观看| 国产精品在线看| 欧美在线精品免播放器视频| 国产综合久久久久久鬼色| 怡红院av一区二区三区| 在线播放国产一区中文字幕剧情欧美| 国产日韩在线一区| 午夜国产不卡在线观看视频| 亚洲女性喷水在线观看一区| 国产精品青草综合久久久久99| 久久久久成人精品| 麻豆精品精华液| 黄色成人小视频| 欧美成人国产va精品日本一级| 久久久午夜视频| 亚洲国产精品传媒在线观看| 亚洲第一久久影院| 美日韩精品免费观看视频| 欧美一区二区三区免费看| 亚洲欧美自拍偷拍| 亚洲精品欧美一区二区三区| 欧美日韩中文精品| 亚洲日本欧美| 欧美精品1区2区3区| 欧美sm重口味系列视频在线观看| 久久亚洲高清| 欧美freesex8一10精品| 免费久久99精品国产自在现线| 欧美精品久久一区二区| 91久久久在线| 欧美激情在线狂野欧美精品| 午夜精彩国产免费不卡不顿大片| 欧美日韩视频在线| 亚洲欧美日韩精品久久| 1000精品久久久久久久久| 欧美亚男人的天堂| 美女精品视频一区| 久久综合激情| 国产日韩1区| 国产日韩亚洲欧美综合| 国产精品theporn| 久久久久久久成人| 国产欧美一区二区三区久久人妖| 亚洲级视频在线观看免费1级| 新狼窝色av性久久久久久| 极品尤物久久久av免费看| 亚洲精品国产精品乱码不99| 免费亚洲电影在线| 国产亚洲精品一区二555| 久久精品在线播放| 亚洲靠逼com| 国产精品yjizz| 中文一区二区在线观看| 国产综合色在线视频区| 亚洲视频 欧洲视频| 亚洲精品久久久久久下一站| 久久不射中文字幕| 欧美日韩一区二区三区视频| 欧美另类极品videosbest最新版本| 亚洲国产精品一区在线观看不卡| 欧美日韩精品免费观看视频| 欧美激情第8页| 午夜欧美理论片| 日韩一级片网址| 亚洲在线视频免费观看| 欧美日韩高清在线播放| 欧美.日韩.国产.一区.二区| 国产一区二区按摩在线观看| 免费日韩精品中文字幕视频在线| 欧美专区福利在线| 欧美国产日韩一区二区在线观看| 老妇喷水一区二区三区| 欧美成人一品| 国产精品99久久久久久www| 国产精品亚洲综合天堂夜夜| 国产精品久久久99| 久久在线视频| 久久久久久一区| 欧美三级电影精品| 久久综合精品一区| 久久久视频精品| 欧美日韩亚洲网| 国产嫩草影院久久久久| 美女精品在线观看| 激情成人在线视频| 最近中文字幕日韩精品| 亚洲一区二区三区在线观看视频| 久久国产精品电影| 嫩草伊人久久精品少妇av杨幂| 国产午夜精品麻豆| 亚洲另类在线一区| 国产综合精品| 国产欧美一区二区三区久久人妖| 一本久久综合亚洲鲁鲁五月天| 免费在线观看一区二区| 激情久久五月天| 国产一区二区三区精品欧美日韩一区二区三区| 国产精品蜜臀在线观看| 国产一区二区三区免费在线观看| 国产精品精品视频| 久久精品视频在线| 亚洲三级国产| 久久精品国产第一区二区三区最新章节| 欧美亚洲免费高清在线观看| 亚洲国产婷婷香蕉久久久久久| 国产精品九九久久久久久久| 夜夜嗨网站十八久久| 在线电影国产精品| 亚洲国产精品视频一区| 久热精品在线视频| 亚洲一区在线观看视频| 亚洲精品在线观看视频| 99精品国产热久久91蜜凸| 一区二区三区四区五区精品视频| 国产精品播放| 99re6热只有精品免费观看| 欧美成人dvd在线视频| 亚洲天堂av图片| 欧美第一黄色网| 亚洲美女免费精品视频在线观看| 亚洲一区在线直播| 欧美日韩一区免费| 亚洲精品小视频在线观看| 亚洲图片在线观看| 欧美一级欧美一级在线播放| 欧美日韩成人在线视频| 国产伦一区二区三区色一情| 国产日韩欧美综合精品| 久久免费精品日本久久中文字幕| 中国日韩欧美久久久久久久久| 亚洲欧洲免费视频| 国产精品海角社区在线观看| 久久精品天堂| 国产嫩草影院久久久久| 在线一区二区三区四区| 久久精品女人| 亚洲一区二区免费| 乱人伦精品视频在线观看| 亚洲在线黄色| 亚洲一区二区在线免费观看| 欧美肉体xxxx裸体137大胆| 麻豆精品视频在线观看| 激情伊人五月天久久综合| 欧美一区二区三区成人| 国产综合色产在线精品| 精品1区2区3区4区| 久久婷婷色综合| 在线观看av不卡| 久久亚洲捆绑美女| 国产一区av在线| 一区二区三区国产在线| 亚洲综合999| 久久国产精品久久精品国产| 欧美日韩国产色视频| 欧美日韩国产综合新一区| 国产精品美女999| 欧美精品videossex性护士| 狠狠综合久久| 欧美三级黄美女| 亚洲人成啪啪网站| 欧美午夜a级限制福利片| 浪潮色综合久久天堂| 亚洲第一成人在线| 一区二区三区在线视频播放| 欧美一区日韩一区| 国产一区二区三区观看| 亚洲精品少妇| 国产在线观看一区| 午夜在线一区二区| 日韩五码在线| 国产日韩久久| 黄色日韩在线| 一区二区三区我不卡| 国产精品国产三级国产| 欧美日韩综合久久| 欧美96在线丨欧| 夜夜嗨av一区二区三区四区| 国产一区二区三区最好精华液| 欧美国产日韩一区| 国产精品乱码一区二区三区| 国产亚洲欧美日韩美女| 亚洲天堂网站在线观看视频| 亚洲精选国产| 亚洲欧洲一区二区在线播放| 亚洲图片欧洲图片av| 性欧美video另类hd性玩具| 欧美成人免费全部观看天天性色| 久久精品免费观看| 久久精品国产清高在天天线| 欧美ab在线视频| 亚洲国产黄色片| 国产精品捆绑调教| 亚洲国产欧美一区二区三区同亚洲| 久久嫩草精品久久久久| 亚洲午夜激情网页| 亚洲一区二区三区中文字幕| 国产精品一区二区在线观看网站| 奶水喷射视频一区| 亚洲人成人77777线观看| 精品福利免费观看| 亚洲国产色一区| 在线电影国产精品| 国产精品丝袜xxxxxxx| 欧美大成色www永久网站婷| 亚洲精品中文字幕在线观看| 欧美精品久久久久久久久老牛影院| 美日韩免费视频| 亚洲一区二区av电影| 蜜桃av综合| 国产精品伊人日日| 国产精品一区在线播放| 久久精品国产99精品国产亚洲性色| 99视频日韩| 国产日韩视频| 欧美中文字幕在线观看| 亚洲欧美卡通另类91av| 国产精品毛片a∨一区二区三区| 欧美午夜精品久久久| 欧美日本精品一区二区三区| 中文一区二区在线观看| 欧美韩日一区| 欧美日韩在线一区二区| 老司机午夜精品视频在线观看| 精品电影一区| 久久综合中文字幕| 免费试看一区| 亚洲激情视频在线播放| 国产日韩欧美亚洲一区| 乱码第一页成人| 美女露胸一区二区三区| 国产毛片精品视频| 国产精品久久国产三级国电话系列| 欧美日韩国产色综合一二三四| 午夜在线精品| 国产精品国产三级国产普通话蜜臀| 欧美aaaaaaaa牛牛影院| 欧美在线免费一级片| 欧美日韩中国免费专区在线看| 久久狠狠久久综合桃花| 黑丝一区二区三区| 久久深夜福利免费观看| 亚洲日韩欧美视频| 亚洲国产日韩精品| 欧美日韩视频不卡| 亚洲国产高清高潮精品美女| 在线观看成人av电影| 国产精品夫妻自拍| 久久精品伊人| 亚洲欧美日韩中文在线制服| 一区二区三区在线免费视频| 亚洲一区二区三区精品视频| 久久精品欧美日韩精品| 国产日韩欧美综合在线| 国产日韩一级二级三级| 久久av一区二区三区亚洲| 欧美午夜在线| 国产精品v欧美精品v日韩精品| 欧美精品一区二区在线观看| 亚洲视频在线播放| 国产精品久久97| 在线日韩中文字幕| 久久激情视频久久| 欧美精品91| 国产精品免费视频观看| 国产欧美一区二区三区久久人妖| 中文在线不卡视频| 欧美国产大片| 欧美成人一区二区三区在线观看| 国产精品色一区二区三区| 极品少妇一区二区三区| 欧美另类女人| 亚洲视频自拍偷拍| 91久久久一线二线三线品牌| 欧美成人中文字幕在线| 美乳少妇欧美精品| 欧美日韩精品欧美日韩精品| 国产精品视频久久一区| 国产麻豆一精品一av一免费| 亚洲综合久久久久| 免费欧美电影| 久久国产日韩欧美| 性伦欧美刺激片在线观看| 中文在线资源观看网站视频免费不卡| 国产精品igao视频网网址不卡日韩| 久久午夜电影网| 国产一区二区无遮挡| 亚洲精品中文字幕女同| 欧美极品欧美精品欧美视频| 一区二区不卡在线视频 午夜欧美不卡'| 欧美视频中文字幕| 欧美精品国产|