m0v*s* optimization
Building up to finalizing m*v*s*! For context, here is the survey prior to this commit: 3476 m0v1s1 3385 m1v2s0 582 m1v1s0 531 m2v0s0 225 m3v0s0 171 m0v2s1 169 m4v0s0 135 m5v0s0 102 m1v0s0 85 m0v1s5 71 m6v0s0 67 m14v0s0 57 m7v0s0 50 m0v2s5 48 m8v0s0 41 m9v0s0 39 m1v0s1 39 m10v0s0 34 m0v1s2 26 m0v1s9 22 m12v0s0 20 m11v0s0 20 m0v2s4 20 m0v1s3 19 m15v0s0 19 m0v4s7 17 m0v5s7 17 m0v3s1 17 m0v1s6 16 m13v0s0 16 m0v4s9 16 m0v2s8 16 m0v1s4 15 m0v5s4 15 m0v4s3 15 m0v3s9 15 m0v3s5 15 m0v2s6 14 m0v12s10 13 m0v5s14 13 m0v3s8 12 m18v0s0 12 m0v4s4 12 m0v4s2 12 m0v3s7 12 m0v3s2 12 m0v2s2 12 m0v12s6 11 m0v7s7 11 m0v6s2 11 m0v5s2 11 m0v53s9 11 m0v2s60 11 m0v28s1 11 m0v23s8 11 m0v13s6 10 m17v0s0 9 m0v2s3 8 m0v11s10 7 m85v0s0 7 m20v0s0 7 m0v4s5 7 m0v1s8 6 m87v0s0 6 m35v0s0 6 m33v0s0 6 m30v0s0 6 m19v0s0 6 m16v0s0 6 m0v5s6 5 m21v0s0 5 m0v7s9 5 m0v3s10 4 m53v0s0 4 m50v0s0 4 m28v0s0 4 m114v0s0 4 m0v6s10 4 m0v5s8 4 m0v3s6 4 m0v3s3 4 m0v1s7 4 m0v13s10 3 m86v0s0 3 m24v0s0 3 m23v0s0 3 m0v6s4 3 m0v5s5 3 m0v4s6 3 m0v3s19 3 m0v2s12 3 m0v1s11 3 m0v11s9 3 m0v11s1 2 m99v0s0 2 m97v0s0 2 m95v0s0 2 m79v0s0 2 m74v0s0 2 m71v0s0 2 m60v0s0 2 m5v18s7 2 m55v0s0 2 m49v0s0 2 m419v0s0 2 m374v0s0 2 m34v0s0 2 m32v0s0 2 m31v0s0 2 m27v0s0 2 m201v0s0 2 m1v1s1 2 m1v13s3 2 m161v0s0 2 m159v0s0 2 m157v0s0 2 m151v0s0 2 m144v0s0 2 m142v0s0 2 m0v9s7 2 m0v9s11 2 m0v8s9 2 m0v8s7 2 m0v8s19 2 m0v7s12 2 m0v6s6 2 m0v6s11 2 m0v5s9 2 m0v5s3 2 m0v5s11 2 m0v5s1 2 m0v4s8 2 m0v4s11 2 m0v3s4 2 m0v3s20 2 m0v3s15 2 m0v3s12 2 m0v2s7 2 m0v2s16 2 m0v2s11 2 m0v29s20 2 m0v19s7 2 m0v19s3 2 m0v17s12 2 m0v16s16 2 m0v15s23 2 m0v15s10 2 m0v13s9 2 m0v13s15 2 m0v11s8 2 m0v10s15 1 m94v0s0 1 m93v0s0 1 m92v0s0 1 m90v0s0 1 m81v0s0 1 m76v7s0 1 m76v0s0 1 m70v0s0 1 m68v0s0 1 m66v11s11 1 m64v0s0 1 m58v0s0 1 m54v0s0 1 m51v0s0 1 m514v20s19 1 m4v4s7 1 m48v0s0 1 m481v20s14 1 m451v0s0 1 m44v0s0 1 m43v0s0 1 m42v0s0 1 m3v16s7 1 m38v4s6 1 m38v0s0 1 m370v0s0 1 m2v2s3 1 m2v2s0 1 m2v25s25 1 m29v0s0 1 m26v0s0 1 m25v0s0 1 m22v0s0 1 m213v0s0 1 m1v3s0 1 m1454v3215s1422 1 m13v11s37 1 m1374v1s0 1 m131v0s0 1 m10v30s23 1 m102v0s0 1 m0v9s9 1 m0v9s8 1 m0v9s12 1 m0v8s12 1 m0v7s4 1 m0v7s15 1 m0v7s11 1 m0v6s9 1 m0v6s8 1 m0v6s5 1 m0v6s20 1 m0v6s16 1 m0v6s12 1 m0v4s17 1 m0v4s10 1 m0v4s1 1 m0v46s23 1 m0v3s17 1 m0v3s16 1 m0v33s21 1 m0v32s38 1 m0v2s9 1 m0v2s10 1 m0v23s30 1 m0v22s9 1 m0v22s31 1 m0v20s29 1 m0v18s24 1 m0v18s10 1 m0v17s26 1 m0v17s14 1 m0v16s9 1 m0v16s27 1 m0v15s20 1 m0v15s14 1 m0v15s11 1 m0v14s6 1 m0v14s5 1 m0v14s13 1 m0v13s7 1 m0v13s20 1 m0v12s9 1 m0v12s8 1 m0v11s11 1 m0v10s17 1 m0v10s14 1 m0v10s11 1 m0v10s10 There are some horridly large ones in there! They were missing from output in previous commits because of how I was gathering information. Those large ones come from liza-proguic's __proguiClasses.master
parent
8045c9d99a
commit
b735d91955
|
@ -708,12 +708,26 @@
|
|||
</when>
|
||||
|
||||
<!-- all vectors with @value/@anyOf -->
|
||||
<when test="$nm = 0 and $nv > 0 and $ns = 0
|
||||
<when test="$nm = 0 and $nv > 0
|
||||
and empty( $vectors[ not( @value or @anyOf or c:* ) ] )">
|
||||
<variable name="jsvec" as="xs:string"
|
||||
select="compiler:optimized-vec-matches(
|
||||
$symtable-map, ., $vectors )" />
|
||||
|
||||
<!-- handle scalars, if any -->
|
||||
<variable name="js" as="xs:string"
|
||||
select="if ( $ns != 0 ) then
|
||||
concat( 'sv', $ctype,
|
||||
'(',
|
||||
$jsvec, ',',
|
||||
compiler:optimized-scalar-matches(
|
||||
$symtable-map, ., $scalars ),
|
||||
')' )
|
||||
else
|
||||
$jsvec" />
|
||||
|
||||
<sequence select="concat( $var, '=E(', $yield-to, '=',
|
||||
compiler:optimized-vec-matches(
|
||||
$symtable-map, ., $vectors ),
|
||||
');' )" />
|
||||
$js, ');' )" />
|
||||
</when>
|
||||
|
||||
<!-- all scalars with @value -->
|
||||
|
@ -1759,6 +1773,16 @@
|
|||
return result;
|
||||
}
|
||||
|
||||
// apply scalar to vector
|
||||
function svu(v, s)
|
||||
{
|
||||
return v.map(x => x & s);
|
||||
}
|
||||
function sve(v, s)
|
||||
{
|
||||
return v.map(x => x | s);
|
||||
}
|
||||
|
||||
|
||||
// existential (any)
|
||||
function E(v)
|
||||
|
|
Loading…
Reference in New Issue