Using Path Spectra to Direct Function Cloning利用路径谱直接作用克隆.pptVIP

  • 2
  • 0
  • 约4.27千字
  • 约 12页
  • 2017-03-09 发布于上海
  • 举报

Using Path Spectra to Direct Function Cloning利用路径谱直接作用克隆.ppt

Using Path Spectra to Direct Function Cloning利用路径谱直接作用克隆

The DIRECT Project Delaware Interprocedural REgion-based Compiler Toolset Tom Way Ben Breech Wei Du Matt Bridges Ves Stoyanov Lori Pollock What is Region-based Compilation? What happens So what’s wrong with that? DIRECT Region Formation Interprocedural Region Formation DIRECT Project: Overview Demand-driven Inliner (Wei Du) Cloning Tool (Ves Stoyanov) VIPER Tool (Matt Bridges) Visualizing InterProcEdural Regions Sample Results: Compile-time Memory Usage DIRECT Project… Wassup? * Department of Computer Information Sciences University of Delaware, Newark, Delaware Directing the interaction between inlining and region-formation Scanner Parser High-level optimizer source code Back end Aggressive Inliner Region Formation Repartitions a program into “regions”, groups of related basic blocks. Uses profiling info to select more “important” blocks to include, while weeding out others. Wraps up regions to look like functions, so rest of compiler is unchanged. before after The Compiler: The Algorithm: Select seed Add successors Add predecessors Add all desirable successors 1 5 1 4 6 2 3 7 999 960 1500 480 990 40 Criteria: block should be at least 50% as frequent as seed AND current block The good news: Controls the size of unit of compilation The bad news: We inlined the program aggressively… So the whole program (pretty much) is in memory for the duration of region formation and optimization! Scalable? Don’t think so! “If you can control the size of the compilation unit, you can control compile time!” Richard Hank Univ. of Illinois Whose idea was this, anyway? Leads to better scheduling on ILP VLIW machines Scanner Parser High-level optimizer source code Back end Demand-driven Inliner Region Formation Uses Uses High-level optimizer Our idea: Integrate inlining and optimization By doing inlining and optimization as you go, things are much more scalable Can you say “interprocedural”? Improved Algorithm: Select local seed Add local successors Recurse at callsite Finish

文档评论(0)

1亿VIP精品文档

相关文档