这个tcl是跑rm_struct pass用的tcl。
set design struct
set out_dir output
# Set device, which will load the specific *.tcl
set_device Virtex7
#set_parameter CLOCK_PERIOD 10
set_clock_period 10
#source legup.tcl
#source config.tcl
# exec clang ${design}.c -emit-llvm -c -fno-builtin -O3 -fno-vectorize -fno-slp-vectorize -fno-unroll-loops -o ${design}_O3.bc
# exec llvm-dis ${design}_O3.bc
# Optimization Level 0
# exec clang ${design}.c -emit-llvm -c -O1 -mllvm -disable-llvm-optzns -o ${design}.bc
# Optimization Level 1
#exec clang ${design}.c -emit-llvm -c -O1 -o ${design}_O1.bc
#exec opt -always-inline ${design}.bc -o ${design}_inline.bc
#run_hybrid ${design}.bc
exec clang ${design}.c -emit-llvm -c -fno-builtin -O1 -mllvm -disable-llvm-optzns -fno-vectorize -fno-slp-vectorize -fno-unroll-loops -o ${design}_O1.bc
exec opt -mem2reg ${design}_O1.bc > test_mem2reg.bc
# exec opt ${design}_O1.bc -O3 -disable-loop-unrolling -disable-slp-vectorization -disable-loop-vectorization -disable-tail-calls -o hw.bc
# exec llvm-dis hw.bc
if {[file isdirectory $out_dir]} {
file delete -force $out_dir
}
file mkdir $out_dir
#run_hw ${design}_O1.bc
#run_hw a.o.3.bc
#run_hw a.o.3.unroll4.bc
#run_hw hw.bc
run_hw test_mem2reg.bc
exec llvm-dis rm_struct.bc
exec opt -globaldce -gvn -dce -deadargelim -die -dse -functionattrs rm_struct.bc > opt_rm_struct.bc
exec llvm-dis opt_rm_struct.bc
exec opt opt_rm_struct.bc -O3 -disable-loop-unrolling -disable-slp-vectorization -disable-loop-vectorization -o O3_rm_struct.bc
这个是用MPS跑数据用的tcl
set design face_detect_host
set out_dir output
# Set device, which will load the specific *.tcl
set_device Virtex7
set_parameter CLOCK_PERIOD 10
#source legup.tcl
#source config.tcl
# Optimization Level 0
#exec clang ${design}.c -emit-llvm -c -O1 -mllvm -disable-llvm-optzns -o ${design}.bc
# Optimization Level 1
#exec clang ${design}.c -emit-llvm -c -O1 -o ${design}_O1.bc
#exec opt -always-inline ${design}.bc -o ${design}_inline.bc
#run_hybrid ${design}.bc
if {[file isdirectory $out_dir]} {
file delete -force $out_dir
}
file mkdir $out_dir
set_operation_attributes -Name signed_subtract_65 -Fmax 316.26 -CritDelay 3.162 -StaticPower 0.00 -DynamicPower 0.00 -LUTs 64 -Registers 192 -LEs 96 -DSP 0 -Latency 0
#run_hw ${design}_O1.bc
#run_hw a.o.3.bc
#run_hw a.o.3.unroll12.bc
run_hw O3_rm_struct.bc
exec llvm-dis hw.bc