-
Notifications
You must be signed in to change notification settings - Fork 21
Implementation of Light HLS and Further Development
Tingyuan LIANG edited this page Jan 8, 2020
·
10 revisions
As shown in Light_HLS_Top.cc, the procedure of Light-HLS contains mainly four steps:
-
Clang part for Front-End Processing:
extract the information of arrays in the source code set labels for each loop in the source code
-
Front-End Passes for FPGA-Oriented Optimizations and Transformation:
Function Level: Function Instantiation Loop Level: Loop Extraction / Loop Simplification / Index Variable Simplify / Loop Stregnth Reducation / Loop Unrolling General Instruction Level: Duplicated Instruction Removal / Multiplication Optimization / Reduction Optimization / Instruction Hoisting / Bitwidth Reduction / etc.. Memory Access Level: GEPLowering / Redundant Access Removal
-
Front-End Passes just before Back-End Analysis:
map the IR loops to the loop labels in the source code for the configurations of loops. mainly account for inserting MUX for the accesses to array partitions.
-
for scheduling and binding After running this Pass, the information will be stored in The public variables of the Pass pointer. such as function latencies, loop tripcounts and etc.