Latest Threat Research:SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains.Details
Socket
Book a DemoInstallSign in
Socket

ssa.js

Package Overview
Dependencies
Maintainers
3
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ssa.js - npm Package Compare versions

Comparing version
2.0.0
to
2.0.2
+11
-2
lib/ssa.js

@@ -87,2 +87,3 @@ 'use strict';

list.splice(-1 - index, 0, phi);
phiNode.splitControl(frontier);
frontier.prepend(phiNode);

@@ -224,6 +225,14 @@ }

var block = this.pipeline.blocks[i];
for (var j = block.nodes.length - 1; j >= 0; j--) {
// Find offset of the first phi
for (var j = 0; j < block.nodes.length; j++) {
var node = block.nodes[j];
if (node.opcode !== 'ssa:phi')
break;
}
j--;
// Phis are inserted at the block start
for (; j >= 0; j--) {
var node = block.nodes[j];
if (node.opcode !== 'ssa:phi')

@@ -230,0 +239,0 @@ break;

+2
-2
{
"name": "ssa.js",
"version": "2.0.0",
"version": "2.0.2",
"description": "SSA Phi Insertion helper",

@@ -28,3 +28,3 @@ "main": "lib/ssa.js",

"jshint": "^2.8.0",
"json-pipeline": "^3.0.0",
"json-pipeline": "^3.7.0",
"mocha": "~1.17.0"

@@ -31,0 +31,0 @@ },

@@ -15,2 +15,3 @@ var fixtures = require('./fixtures');

i6 = add i4, i5
i7 = return ^b0, i6
}

@@ -24,4 +25,5 @@ }

i2 = literal 1
i4 = literal 2
i3 = add i4, i2
i3 = literal 2
i4 = add i3, i2
i5 = return ^b0, i4
}

@@ -38,2 +40,3 @@ }

i3 = ssa:store 0, i2
i4 = jump ^b0
}

@@ -43,5 +46,6 @@ b0 -> b1

b1 {
i4 = literal 2
i5 = ssa:load 0
i6 = add i4, i5
i5 = literal 2
i6 = ssa:load 0
i7 = add i5, i6
i8 = return ^b1, i7
}

@@ -55,2 +59,3 @@ }

i2 = literal 1
i3 = jump ^b0
}

@@ -61,3 +66,4 @@ b0 -> b1

i4 = literal 2
i3 = add i4, i2
i5 = add i4, i2
i6 = return ^b1, i5
}

@@ -70,2 +76,3 @@ }

b0 {
i0 = if ^b0
}

@@ -75,4 +82,5 @@ b0 -> b1, b2

b1 {
i0 = literal 1
i1 = ssa:store 0, i0
i1 = literal 1
i2 = ssa:store 0, i1
i3 = jump ^b1
}

@@ -82,4 +90,5 @@ b1 -> b3

b2 {
i2 = literal 2
i3 = ssa:store 0, i2
i4 = literal 2
i5 = ssa:store 0, i4
i6 = jump ^b2
}

@@ -89,4 +98,4 @@ b2 -> b3

b3 {
i4 = ssa:load 0
i5 = return i4
i7 = ssa:load 0
i8 = return ^b3, i7
}

@@ -97,18 +106,18 @@ }

b0 {
i0 = if ^b0
}
b0 -> b1, b2
b1 {
i0 = literal 1
i1 = literal 1
i2 = jump ^b1
}
b1 -> b3
b2 {
i2 = literal 2
i3 = literal 2
i4 = jump ^b2
}
b2 -> b3
b3 {
i1 = ssa:phi i0, i2
i3 = return i1
i5 = ssa:phi ^b3, i1, i3
i6 = return ^i5, i5
}

@@ -134,2 +143,3 @@ }

i1 = ssa:store 1, i0
i2 = if ^b0
}

@@ -139,2 +149,3 @@ b0 -> b1, b5

b1 {
i3 = if ^b1
}

@@ -144,4 +155,5 @@ b1 -> b2, b3

b2 {
i2 = literal 1
i3 = ssa:store 0, i2
i4 = literal 1
i5 = ssa:store 0, i4
i6 = jump ^b2
}

@@ -151,4 +163,5 @@ b2 -> b4

b3 {
i4 = literal 2
i5 = ssa:store 0, i4
i7 = literal 2
i8 = ssa:store 0, i7
i9 = jump ^b3
}

@@ -158,2 +171,3 @@ b3 -> b4

b4 {
i10 = jump ^b4
}

@@ -163,2 +177,3 @@ b4 -> b9

b5 {
i11 = jump ^b5
}

@@ -168,4 +183,5 @@ b5 -> b6, b7

b6 {
i6 = literal 3
i7 = ssa:store 0, i6
i12 = literal 3
i13 = ssa:store 0, i12
i14 = jump ^b6
}

@@ -175,4 +191,5 @@ b6 -> b8

b7 {
i8 = literal 4
i9 = ssa:store 0, i8
i15 = literal 4
i16 = ssa:store 0, i15
i17 = jump ^b7
}

@@ -182,2 +199,3 @@ b7 -> b8

b8 {
i18 = jump ^b8
}

@@ -187,5 +205,6 @@ b8 -> b9

b9 {
i10 = ssa:load 0
i11 = ssa:load 1
i12 = add i10, i11
i19 = ssa:load 0
i20 = ssa:load 1
i21 = add i19, i20
i22 = return ^b9, i21
}

@@ -197,37 +216,47 @@ }

i0 = literal "pass-through"
i1 = if ^b0
}
b0 -> b1, b5
b1 {
i2 = if ^b1
}
b1 -> b2, b3
b2 {
i2 = literal 1
i3 = literal 1
i4 = jump ^b2
}
b2 -> b4
b3 {
i4 = literal 2
i5 = literal 2
i6 = jump ^b3
}
b3 -> b4
b4 {
i13 = ssa:phi i2, i4
i7 = ssa:phi ^b4, i3, i5
i8 = jump ^i7
}
b4 -> b9
b5 {
i9 = jump ^b5
}
b5 -> b6, b7
b6 {
i6 = literal 3
i10 = literal 3
i11 = jump ^b6
}
b6 -> b8
b7 {
i8 = literal 4
i12 = literal 4
i13 = jump ^b7
}
b7 -> b8
b8 {
i3 = ssa:phi i6, i8
i14 = ssa:phi ^b8, i10, i12
i15 = jump ^i14
}
b8 -> b9
b9 {
i9 = ssa:phi i13, i3
i12 = add i9, i0
i16 = ssa:phi ^b9, i7, i14
i17 = add i16, i0
i18 = return ^i16, i17
}

@@ -240,2 +269,3 @@ }

b0 {
i0 = jump ^b0
}

@@ -245,2 +275,3 @@ b0 -> b1

b1 {
i1 = if ^b1
}

@@ -250,5 +281,6 @@ b1 -> b2, b3

b2 {
i0 = literal 1
i1 = ssa:store 0, i0
i2 = ssa:load 0
i2 = literal 1
i3 = ssa:store 0, i2
i4 = ssa:load 0
i5 = jump ^b2
}

@@ -258,2 +290,4 @@ b2 -> b1

b3 {
i6 = literal 0
i7 = return ^b3, i6
}

@@ -264,15 +298,17 @@ }

b0 {
i0 = jump ^b0
}
b0 -> b1
b1 {
i1 = if ^b1
}
b1 -> b2, b3
b2 {
i0 = literal 1
i2 = literal 1
i3 = jump ^b2
}
b2 -> b1
b3 {
i4 = literal 0
i5 = return ^b3, i4
}

@@ -303,3 +339,3 @@ }

i5 = ssa:load 0
i6 = return ^b3, i2
i6 = return ^b3, i5
}

@@ -314,8 +350,8 @@ }

b1 {
i3 = ssa:undefined
i1 = jump ^b1
i1 = ssa:undefined
i2 = jump ^b1
}
b1 -> b3
b2 {
i2 = literal 1
i3 = literal 1
i4 = jump ^b2

@@ -325,4 +361,4 @@ }

b3 {
i5 = ssa:phi i3, i2
i6 = return ^b3, i2
i5 = ssa:phi ^b3, i1, i3
i6 = return ^i5, i5
}

@@ -329,0 +365,0 @@ }

@@ -22,2 +22,3 @@ var assertText = require('assert-text');

p.reindex();
assertText.equal(p.render({ cfg: true }, 'printable'),

@@ -24,0 +25,0 @@ fn2str(output));