Program slicing is a technique for simplifying programs by focusing on selected aspects of their behavior.Current mainstream static slicing methods operate on dependence graph PDG(program dependence graph)or SDG(syste...Program slicing is a technique for simplifying programs by focusing on selected aspects of their behavior.Current mainstream static slicing methods operate on dependence graph PDG(program dependence graph)or SDG(system dependence graph),but these friendly graph representations may be a bit expensive for some users.In this paper we attempt to study a light-weight approach of static program slicing,called Symbolic Program Slicing(SymPas),which works as a dataflow analysis on LLVM(low-level virtual machine).In our SymPas approach,slices are stored in symbolic forms,not in procedures being re-analyzed(cf.procedure summaries).Instead of re-analyzing a procedure multiple times to find its slices for each callling context,we calculate a single symbolic slice which can be instantiated at call sites avoiding re-analysis;SymPas is implemented with LLVM to perform slicing on LLVM intermediate representation(IR).For comparison,we systematically adapt IFDS(interprocedural finite distributive subset)analysis and the SDG-based slicing method(SDGIFDS)to statically slice IR programs.Evaluated on open-source and benchmark programs,our backward SymPas shows a factor-of-6 reduction in time cost and a factor-of-4 reduction in space cost,compared with backward SDG-IFDS,thus being more efficient.In addition,the result shows that after studying slices from 66 programs,ranging up to 336800 IR instructions in size,SymPas is highly size-scalable.展开更多
针对SVC(Scalable Video Coding)视频编码算法的高复杂度,提出了一种面向TileraGx36多核平台的针对高清视频的SVC并行编码算法。在层间,提出基于时间层对齐的空间层级并行编码;在层内,针对图像变化的多样性,为实现Slice间编码性能的动...针对SVC(Scalable Video Coding)视频编码算法的高复杂度,提出了一种面向TileraGx36多核平台的针对高清视频的SVC并行编码算法。在层间,提出基于时间层对齐的空间层级并行编码;在层内,针对图像变化的多样性,为实现Slice间编码性能的动态均衡,提出了直接根据统计时间的Slice级动态分割方法,并针对依赖性较强的去方块滤波模块实现了多核并行滤波方案。结合平台特点,实现了多核处理器核数的动态分配方案。实验结果表明,整个方案并行加速比超过19,实现了最大分辨率720P视频序列的实时编码。展开更多
基金The work was supported by the National Natural Science Foundation of China under Grant Nos.60973046 and 61300054the Qing Lan Project of Jiangsu Province of Chinathe 1311 Talent Program Funding of Nanjing University of Posts and Telecommunications.
文摘Program slicing is a technique for simplifying programs by focusing on selected aspects of their behavior.Current mainstream static slicing methods operate on dependence graph PDG(program dependence graph)or SDG(system dependence graph),but these friendly graph representations may be a bit expensive for some users.In this paper we attempt to study a light-weight approach of static program slicing,called Symbolic Program Slicing(SymPas),which works as a dataflow analysis on LLVM(low-level virtual machine).In our SymPas approach,slices are stored in symbolic forms,not in procedures being re-analyzed(cf.procedure summaries).Instead of re-analyzing a procedure multiple times to find its slices for each callling context,we calculate a single symbolic slice which can be instantiated at call sites avoiding re-analysis;SymPas is implemented with LLVM to perform slicing on LLVM intermediate representation(IR).For comparison,we systematically adapt IFDS(interprocedural finite distributive subset)analysis and the SDG-based slicing method(SDGIFDS)to statically slice IR programs.Evaluated on open-source and benchmark programs,our backward SymPas shows a factor-of-6 reduction in time cost and a factor-of-4 reduction in space cost,compared with backward SDG-IFDS,thus being more efficient.In addition,the result shows that after studying slices from 66 programs,ranging up to 336800 IR instructions in size,SymPas is highly size-scalable.
文摘针对SVC(Scalable Video Coding)视频编码算法的高复杂度,提出了一种面向TileraGx36多核平台的针对高清视频的SVC并行编码算法。在层间,提出基于时间层对齐的空间层级并行编码;在层内,针对图像变化的多样性,为实现Slice间编码性能的动态均衡,提出了直接根据统计时间的Slice级动态分割方法,并针对依赖性较强的去方块滤波模块实现了多核并行滤波方案。结合平台特点,实现了多核处理器核数的动态分配方案。实验结果表明,整个方案并行加速比超过19,实现了最大分辨率720P视频序列的实时编码。