2009-11-14 206 views
1

其實我正在做一個實現編譯器優化技術的重大項目。我已經知道現有的技術,但我很困惑選擇什麼技術以及如何實現它。編譯器優化實現

+0

你能更具體嗎?例如,你不清楚你在談論什麼技術。 – 2009-11-14 12:00:09

+1

我在這裏沒有看到問題。 – Novelocrat 2009-11-16 03:11:09

回答

1

假設您有一個編譯器進行優化,並且如果它不是由您編寫的,請查閱文檔以查看缺少的內容。否則,如果它是由你寫的,你可以從最簡單的開始。最簡單的定義將取決於您的編譯器所使用的語言。或者我錯過了什麼?

2

G'day,

你在說什麼優化領域?

編譯器優化如:

  • 循環優化
  • 數據流優化
  • 靜態單分配基於優化
  • 碼發生器優化

還是優化編譯器本身的性能,即它的工作速度?

-1

恕我直言,要做的事情是實現簡單明顯的優化,然後讓它休息。當然,嘗試做一些奇怪而美妙的優化來矯正用戶可能會編碼得更好一些的東西是非常有趣的,但是如果你確實想在糟糕的編碼或糟糕的設計之後嘗試清理,用戶總是可以超越你。 This is my favorite example.

我最喜歡的編譯器 - 優化 - 結束 - 堅果的例子是Fortran編譯器,他們去了這樣的長度來打亂代碼來修改代碼幾乎無法調試的幾個假設週期,通常程序計數器是在那裏只有不到1%的時間,所以這種努力被浪費了。

0

我想你可能已經優化了你的問題。你是否試圖決定從哪裏開始或試圖決定是否有一些優化值得實施,而其他則不是?我會假設所有現有的技術都有一個地方,並且根據他們遇到的代碼是有用的。如果你決定先做哪一件事,那就選擇一件你可以做的事吧。選擇低垂的果實。在解決困難之前,在你的後兜裏獲得幾個勝利,然後絆倒並沮喪。我會假設真正的訣竅是在那裏進行所有的優化並且工作,但是想出一種方法來決定哪些產品對於特定程序更好,哪些產品會阻礙並使事情變得更糟。