Skip to content

Commit 3ec56c4

Browse files
committed
Revert "Drop contract pass; non-fast versions did not do a great job reducing unnecessary vmovapd instructions, and a (now fixed) bug causd issue 25. Fixes 25."
This reverts commit 589f36e. While the contract pass might not really decrease the amount of vmovapd instrctusions, it is also helpful to more accurately estimate the cost of sequentional mul and add instructions. Until this is actually implemented for LoopSet objects themselves, using the contract_pass function on the Expr before converting it into a LoopSet is a convenient hack.
1 parent 76f12f3 commit 3ec56c4

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

src/constructors.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,15 @@ function substitute_broadcast(q::Expr)
4141
end
4242

4343
function LoopSet(q::Expr)
44+
q = SIMDPirates.contract_pass(q)
4445
ls = LoopSet()
4546
copyto!(ls, q)
4647
resize!(ls.loop_order, num_loops(ls))
4748
ls
4849
end
4950

5051
function LoopSet(q::Expr, types::Dict{Symbol,DataType})
52+
q = SIMDPirates.contract_pass(q)
5153
ls = LoopSet()
5254
copyto!(ls, q, types)
5355
resize!(ls.loop_order, num_loops(ls))

0 commit comments

Comments
 (0)