Optimization of misaligned data processing based on LLVM compiler
Download as PDF
DOI: 10.23977/icmee.2019.2738
Author(s)
Lingqin Gong, Qinglei Zhou and Hao Hu
Corresponding Author
Lingqin Gong
ABSTRACT
The processing of misaligned data is optimized based on the directed acyclic graph at the back end of the LLVM compiler. Implements the LLVM compiler's processing of unaligned scalar data and unaligned vector data. The processing and optimization of misaligned data mainly includes two aspects: 1. Provides optimized processing of misaligned vector data and scalar data based on directed acyclic graph, which solves the problem of misaligned memory access affecting program performance. 2. In the LLVM compiler backend instruction selection phase, a custom node downgrade process is provided, which enhances the flexibility and reusability of the optimization. Test the program containing misaligned data. The maximum speedup of the problem with unaligned scalar data is 20.27, the average speedup is 14.49, the maximum speedup of the problem with unaligned vector data is 14.01, and the average speedup is 13.61.
KEYWORDS
LLVM, Directed acyclic graph, misaligned data, Instruction selection