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

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

NI labview/zhs">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代碼中固有的并行特性。


圖 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。

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

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

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

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

圖 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>
          午夜国产精品影院在线观看| 国产一区二区三区成人欧美日韩在线观看| 亚洲欧美日本伦理| 91久久久亚洲精品| 国产手机视频精品| 在线亚洲欧美专区二区| 国产精品豆花视频| 你懂的亚洲视频| 欧美日本不卡视频| 1024精品一区二区三区| 欧美中文字幕第一页| 久久精品99国产精品酒店日本| 国产精品美女久久久久久2018| 欧美日韩免费视频| 欧美色精品天天在线观看视频| 亚洲一级在线| 欧美自拍丝袜亚洲| 国产三级精品在线不卡| 欧美成年人视频网站欧美| 一区二区三区国产在线| 国产亚洲一级高清| 伊人天天综合| 国产精品永久入口久久久| 欧美成人一品| 国产精品美女久久| 免费久久99精品国产自在现线| 久久av红桃一区二区小说| 亚洲欧美在线视频观看| 亚洲国产成人高清精品| 日韩天堂在线视频| 国产精品一区免费在线观看| 午夜精品国产精品大乳美女| 国产日韩欧美视频在线| 亚洲欧美www| 激情亚洲网站| 亚洲精品123区| 午夜精品偷拍| 欧美精品亚洲一区二区在线播放| 性色av一区二区三区| 欧美一区二区三区婷婷月色| 国产一区二区三区日韩欧美| 亚洲欧美一区二区三区久久| 亚洲天堂视频在线观看| 国产亚洲a∨片在线观看| 国产亚洲成av人片在线观看桃| 亚洲精品中文字幕女同| 日韩天堂在线观看| 欧美激情在线播放| 亚洲一区二区在线播放| 久久精品国产99精品国产亚洲性色| 亚洲日本va午夜在线电影| 亚洲国产婷婷| 午夜精品999| 亚洲一区中文| 樱桃国产成人精品视频| 久久另类ts人妖一区二区| 欧美男人的天堂| 久久久亚洲影院你懂的| 国产精品自在欧美一区| 亚洲综合色丁香婷婷六月图片| 久久久噜噜噜| 国产日本欧美一区二区三区在线| 欧美日韩精品二区第二页| 欧美国产精品专区| 国产日韩精品一区| 午夜精品久久久久久| 一区二区三区鲁丝不卡| 国产日韩一区二区三区在线| 欧美日韩一区免费| 国产午夜精品久久| 亚洲欧美国产va在线影院| 欧美午夜a级限制福利片| 一区二区欧美精品| 欧美精品免费视频| 久久爱www久久做| 国产偷自视频区视频一区二区| 国产精品免费在线| 性色av一区二区三区| 亚洲欧美在线另类| 国产日韩欧美三级| 国产欧美日韩中文字幕在线| 国产精品一区亚洲| 久久亚洲一区二区三区四区| 午夜精品国产更新| 欧美日韩国产天堂| 国产精品亚洲片夜色在线| 国产精品久久精品日日| 亚洲网站啪啪| 亚洲欧美中文在线视频| 红桃av永久久久| 国产日韩欧美亚洲一区| 在线看无码的免费网站| 国产精品视频久久| 亚洲欧美一级二级三级| 一个色综合导航| aaa亚洲精品一二三区| 狠狠综合久久| 欧美激情精品久久久久久蜜臀| 国产九九视频一区二区三区| 久久夜色撩人精品| 狠狠爱www人成狠狠爱综合网| 亚洲高清毛片| 亚洲欧美国产va在线影院| 欧美国产日韩一区二区在线观看| 国产精品99久久久久久白浆小说| 国产精品美女久久久久久久| 国产精品久久久久久福利一牛影视| 一区二区高清在线观看| 亚洲一级一区| 极品尤物一区二区三区| 欧美精品一区二区三区蜜桃| 欧美日韩欧美一区二区| 欧美天堂亚洲电影院在线播放| 欧美激情视频在线播放| 先锋影院在线亚洲| 日韩特黄影片| 极品日韩av| 国产欧美一区二区精品婷婷| 另类综合日韩欧美亚洲| 欧美精品乱码久久久久久按摩| 久久久99久久精品女同性| 日韩亚洲在线| 国产伦精品一区二区三区视频孕妇| 欧美巨乳在线观看| 91久久精品国产91久久性色| 久久人人97超碰人人澡爱香蕉| 日韩手机在线导航| 国产精品捆绑调教| 国产一区二区三区在线免费观看| 亚洲人成网站在线播| 久久精品综合一区| 一本高清dvd不卡在线观看| 国产精品va在线播放| 国产精品自在欧美一区| 久久精品麻豆| 亚洲小说春色综合另类电影| 欧美—级在线免费片| 国产午夜亚洲精品理论片色戒| 美女脱光内衣内裤视频久久影院| 国产女人aaa级久久久级| 国产一区二区日韩精品| 久久久久www| a91a精品视频在线观看| 91久久精品一区二区别| 亚洲美女网站| 欧美午夜无遮挡| 欧美性猛交99久久久久99按摩| 亚洲激情视频在线| 亚洲人精品午夜在线观看| 欧美激情一区二区三区在线视频| 国产精品www.| 日韩天堂av| 亚洲国产一区二区视频| 亚洲免费影视| 巨乳诱惑日韩免费av| 欧美日韩国产在线观看| 在线日本成人| 99香蕉国产精品偷在线观看| 午夜精品久久久久久久久久久久| 新片速递亚洲合集欧美合集| 亚洲第一视频网站| 国产视频丨精品|在线观看| 久久久亚洲国产美女国产盗摄| 狠狠色狠狠色综合日日五| 亚洲国产美国国产综合一区二区| 国产视频综合在线| 欧美日韩亚洲一区二区三区在线| 毛片av中文字幕一区二区| 久久亚洲精选| 国产欧美一区二区精品秋霞影院| 国产一区二三区| 久久在线免费视频| 欧美精品一区三区在线观看| 在线日韩一区二区| 激情欧美一区二区三区在线观看| 欧美三区免费完整视频在线观看| 欧美激情aⅴ一区二区三区| 亚洲视频香蕉人妖| 欧美成人免费在线视频| 中国成人亚色综合网站| 午夜精品一区二区三区四区| 农村妇女精品| 欧美一区二区三区精品| 国产精品日韩一区| 国产精品久久午夜夜伦鲁鲁| 99国内精品久久久久久久软件| 欧美午夜激情小视频| 亚洲视频狠狠| 午夜精品影院| 一区二区在线不卡| 国产精品乱码人人做人人爱| 国产欧美一区二区三区国产幕精品| 国产精品日日摸夜夜摸av| 亚洲激情二区| 小黄鸭精品aⅴ导航网站入口| 亚欧美中日韩视频| 午夜精品国产精品大乳美女| 国产精品盗摄一区二区三区| 性亚洲最疯狂xxxx高清| 亚洲在线不卡| 1024日韩| 在线视频欧美日韩| 久久久一本精品99久久精品66| 欧美日韩精品一区二区在线播放| 久久不射电影网| 国产精品日韩一区二区三区| 亚洲成人自拍视频| 久久综合色一综合色88| 亚洲一区二区网站| 久久国产一区二区| 亚洲一区精品电影| 伊人久久亚洲美女图片| 国产精品久久国产三级国电话系列| 久久精品国产96久久久香蕉| 欧美特黄一级| 欧美区一区二| 欧美日本三区| 亚洲风情亚aⅴ在线发布| 久久亚洲精选| 精品成人免费| 欧美精品18videos性欧美| 国产综合色产| 在线观看日韩www视频免费| 欧美在线www| 亚洲一区二区在线免费观看视频| 欧美激情亚洲视频| 国产乱理伦片在线观看夜一区| 欧美日韩美女在线观看| 在线综合亚洲欧美在线视频| 在线欧美日韩精品| 欧美在线观看视频在线| 性欧美videos另类喷潮| 国产女人精品视频| 亚洲午夜高清视频| 国产乱码精品1区2区3区| 久久久久久久一区二区三区| 亚洲深夜福利网站| 国产精品久久9| 国产三区精品| 欧美成人综合一区| 久久久国产精品一区二区中文| 日韩视频一区二区三区在线播放| 欧美日韩视频一区二区三区| 国产在线国偷精品产拍免费yy| 韩国女主播一区| 欧美电影资源| 一区二区三区亚洲| 国产伦精品一区二区三区| 国产精品一区一区| 亚洲日本欧美天堂| 久久久久久久久岛国免费| 国产午夜精品视频| 午夜视频在线观看一区二区三区| 黄色av日韩| 国产日产欧美一区| 亚洲国产精品va在线看黑人| 欧美日韩一区二区三区在线观看免| 国产精品女同互慰在线看| 亚洲狼人综合| 国产精品久久久一区麻豆最新章节| 美女脱光内衣内裤视频久久网站| 欧美日韩精品是欧美日韩精品| 一本一本久久a久久精品综合妖精| 欧美色综合天天久久综合精品| 亚洲一区综合| 老巨人导航500精品| 国产精品区二区三区日本| 欧美在线精品免播放器视频| 免费亚洲一区二区| 在线看无码的免费网站| 欧美日韩日日夜夜| 亚洲国产精品福利| 国产欧美一区二区精品性| 亚洲日本电影在线| 精品成人在线视频| 在线视频精品一| 在线免费观看日韩欧美| 性色av一区二区三区| 国产麻豆午夜三级精品| 免费不卡在线观看| 国产精品一区二区三区久久| 国产精品永久| 欧美日韩国产精品一区二区亚洲| 国产精品国产三级国产aⅴ无密码| 国产日韩欧美夫妻视频在线观看| 亚洲国产成人在线播放| 国产乱码精品一区二区三区五月婷| 精品成人乱色一区二区| 激情综合激情| 国产综合婷婷| 国产一区日韩欧美| 亚洲激情自拍| 在线一区观看| 亚洲国产精品久久久久秋霞蜜臀| 狠狠色狠狠色综合日日91app| 老色鬼久久亚洲一区二区| 99视频精品| 欧美无砖砖区免费| 久热re这里精品视频在线6| 欧美日韩国产精品一卡| 国产精品视频| 欧美在线啊v一区| 欧美日韩性生活视频| 免费亚洲一区二区| 亚洲麻豆视频| 欧美 日韩 国产 一区| 欧美日韩精品免费观看| 国产精品家庭影院| 欧美人与禽猛交乱配视频| 欧美伊人久久大香线蕉综合69| 亚洲欧美一区二区在线观看| 欧美黑人一区二区三区| 欧美日韩在线三级| 欧美精品二区三区四区免费看视频| 欧美精品亚洲| 国产精品久久久久久久久借妻| 亚洲精品资源| 激情文学一区| 国产欧美一区在线| 伊人久久综合| 亚洲第一福利在线观看| 免费永久网站黄欧美| 欧美精品手机在线| 国产日韩一区| 性色av一区二区三区| 亚洲国产婷婷香蕉久久久久久99| 亚洲福利视频一区二区| 国产精品久久一区二区三区|