天天看點

七天LLVM零基礎入門(Linux版本)------總結

七天LLVM零基礎入門這系列文章,為了讓剛接觸LLVM的人在最短的時間内快速的熟悉LLVM。這系列文章,現在經過将近一年的時間的使用,有了不少回報的意見,現在将這些情況總結一下。

1. 在按照這個七天的學習計劃進行的學習過程中,不少人出現了延誤現象,主要展現在讀文檔的時候,讀的過于仔細,然後感覺時間不夠用。雖然在文檔上花了很長時間,但是到最後該用文檔中的東西的時候,反而無從下手。出現這個問題,主要還是不會把握文檔的重點,這個系列中列出來的文檔,在日後接觸LLVM的過程中,需要不斷的去讀,反複的去讀。不是讀一遍就可以完全掌握的,在最開始讀的時候首先要熟悉文檔的主要結構,了解文檔裡都覆寫了哪些内容,然後在用的時候可以知道在哪裡能找到,這就達到了目的。

       特别是針對剛畢業的學生,特别容易對文檔摳的太仔細,全是新東西,花了很長時間看完了,回頭發現什麼也沒記住。這就導緻既花費了時間,又沒有效果,不是在公司實際工作中該出現的,在工作中學習東西就是為了更快的使用,不是為了考試,是以如果讀完了沒有收獲,那麼等于就是白讀了。

2. 這個系列中第五天布置了一個練習,在第六天的時候給出了一個官方的例子。這個最初在剛開始的時候,是我每天一篇寫出來,是以不存在什麼問題。現在把整個系列都釋出了,有些讓學習這個系列的人就延續了在學校時候的做法,如果有答案是完全不動腦子的。導緻第五天的練習基本上都是抄襲第六天的LLVM的官方例子的。這樣的情況實在是懶得費心去避免了,在工作中學到的東西就是自己的,學不會,完不成工作任務,公司自然有公司的辦法。如果跟在學校跟老師玩貓捉老鼠的遊戲,實在是得不償失了。

3. 學習過程中思考太少。學習了這些内容之後,應該可以正常的使用LLVM,并且應該對LLVM的IR有了一個基本的認識,可以閱讀簡單的LLVM IR程式,可以寫簡單的優化的PASS,可以寫一些測試用例,并且應該是對LLVM有了一個整體的基本認識。但是有一些人學習完了之後,除非給他一個跟練習一模一樣的任務,否則還是做不了,該讀的文檔都讀了,該做的練習都做了,問題出在哪?沒有自己去思考,沒有自己去探索。編譯器的領域在計算機領域裡不是最難的,但是也算不上是簡單的領域,如果自己不用心思考,不用心去探索,根本不可能搞精通。

4.學習完成之後,以為自己就完全精通LLVM了,之前的文檔也不看了,平時也不在這個的學習上面花時間了。這種情況一般出現在前面學習的還行,入了一點門,然後就覺的自己好像忽然都明白了,其實從這系列文章的題目上就能看出來,這隻是入門。這系列學的再好,也就是剛剛入門。是以,後面需要學習的東西還很多,所謂活到老學到老。後續會寫一系列的LLVM進階的文章,友善進一步探索LLVM的人,也會按照天數進行劃分。

後續一系列進階的博文名稱暫定:LLVM零基礎進階

繼續閱讀