{
  "status": "PASS",
  "physical_registers": [
    "R0",
    "R1",
    "S0",
    "S1"
  ],
  "allocatable": [
    "R0",
    "R1"
  ],
  "source": {
    "E": [
      [
        "input",
        "a",
        "a"
      ],
      [
        "input",
        "flag",
        "flag"
      ],
      [
        "add",
        "t2",
        "a",
        1
      ],
      [
        "add",
        "t3",
        "a",
        2
      ],
      [
        "br",
        "flag",
        "T",
        "F"
      ]
    ],
    "T": [
      [
        "add",
        "t4",
        "t2",
        "t3"
      ],
      [
        "jmp",
        "J"
      ]
    ],
    "F": [
      [
        "sub",
        "t4",
        "t2",
        "t3"
      ],
      [
        "jmp",
        "J"
      ]
    ],
    "J": [
      [
        "mov",
        "v",
        "t4"
      ],
      [
        "call",
        "t5",
        "v"
      ],
      [
        "add",
        "y",
        "a",
        "t5"
      ],
      [
        "ret",
        "y"
      ]
    ]
  },
  "main": {
    "color": {
      "locations": {
        "a": "slot0",
        "flag": "slot1",
        "t2": "R1",
        "t3": "R0",
        "t4": "R0",
        "t5": "R0",
        "v": "R0",
        "y": "R0"
      },
      "trace": [
        [
          "simplify",
          "t4",
          1
        ],
        [
          "simplify",
          "t5",
          1
        ],
        [
          "simplify",
          "v",
          1
        ],
        [
          "simplify",
          "y",
          0
        ],
        [
          "potential-spill",
          "a",
          4
        ],
        [
          "potential-spill",
          "flag",
          2
        ],
        [
          "simplify",
          "t2",
          1
        ],
        [
          "simplify",
          "t3",
          0
        ],
        [
          "color",
          "t3",
          0
        ],
        [
          "color",
          "t2",
          1
        ],
        [
          "actual-spill",
          "flag"
        ],
        [
          "actual-spill",
          "a"
        ],
        [
          "color",
          "y",
          0
        ],
        [
          "color",
          "v",
          0
        ],
        [
          "color",
          "t5",
          0
        ],
        [
          "color",
          "t4",
          0
        ]
      ],
      "target": {
        "E": [
          [
            "IN",
            "S0",
            "a"
          ],
          [
            "ST",
            "slot0",
            "S0"
          ],
          [
            "IN",
            "S0",
            "flag"
          ],
          [
            "ST",
            "slot1",
            "S0"
          ],
          [
            "LD",
            "S0",
            "slot0"
          ],
          [
            "ADD",
            "R1",
            "S0",
            1
          ],
          [
            "LD",
            "S0",
            "slot0"
          ],
          [
            "ADD",
            "R0",
            "S0",
            2
          ],
          [
            "LD",
            "S0",
            "slot1"
          ],
          [
            "BR",
            "S0",
            "T",
            "F"
          ]
        ],
        "T": [
          [
            "ADD",
            "R0",
            "R1",
            "R0"
          ],
          [
            "JMP",
            "J"
          ]
        ],
        "F": [
          [
            "SUB",
            "R0",
            "R1",
            "R0"
          ],
          [
            "JMP",
            "J"
          ]
        ],
        "J": [
          [
            "CALL2"
          ],
          [
            "LD",
            "S0",
            "slot0"
          ],
          [
            "ADD",
            "R0",
            "S0",
            "R0"
          ],
          [
            "RET",
            "R0"
          ]
        ]
      }
    },
    "linear": {
      "locations": {
        "a": "slot0",
        "flag": "R0",
        "t2": "R1",
        "t3": "slot1",
        "t4": "R0",
        "t5": "R0",
        "v": "R0",
        "y": "R0"
      },
      "trace": [
        [
          "assign",
          "a",
          1
        ],
        [
          "assign",
          "flag",
          0
        ],
        [
          "evict-whole",
          "a",
          "t2"
        ],
        [
          "spill-whole",
          "t3"
        ],
        [
          "assign",
          "t4",
          0
        ],
        [
          "assign",
          "v",
          0
        ],
        [
          "assign",
          "t5",
          0
        ],
        [
          "assign",
          "y",
          0
        ]
      ],
      "target": {
        "E": [
          [
            "IN",
            "S0",
            "a"
          ],
          [
            "ST",
            "slot0",
            "S0"
          ],
          [
            "IN",
            "R0",
            "flag"
          ],
          [
            "LD",
            "S0",
            "slot0"
          ],
          [
            "ADD",
            "R1",
            "S0",
            1
          ],
          [
            "LD",
            "S0",
            "slot0"
          ],
          [
            "ADD",
            "S0",
            "S0",
            2
          ],
          [
            "ST",
            "slot1",
            "S0"
          ],
          [
            "BR",
            "R0",
            "T",
            "F"
          ]
        ],
        "T": [
          [
            "LD",
            "S1",
            "slot1"
          ],
          [
            "ADD",
            "R0",
            "R1",
            "S1"
          ],
          [
            "JMP",
            "J"
          ]
        ],
        "F": [
          [
            "LD",
            "S1",
            "slot1"
          ],
          [
            "SUB",
            "R0",
            "R1",
            "S1"
          ],
          [
            "JMP",
            "J"
          ]
        ],
        "J": [
          [
            "CALL2"
          ],
          [
            "LD",
            "S0",
            "slot0"
          ],
          [
            "ADD",
            "R0",
            "S0",
            "R0"
          ],
          [
            "RET",
            "R0"
          ]
        ]
      }
    },
    "coalesce": {
      "locations": {
        "a": "slot0",
        "flag": "slot1",
        "t2": "R1",
        "t3": "R0",
        "t4": "R0",
        "t5": "R0",
        "v": "R0",
        "y": "R0"
      },
      "trace": [
        [
          "simplify",
          "t5",
          1
        ],
        [
          "simplify",
          "y",
          0
        ],
        [
          "coalesce",
          "v",
          "t4"
        ],
        [
          "simplify",
          "v",
          1
        ],
        [
          "potential-spill",
          "a",
          4
        ],
        [
          "potential-spill",
          "flag",
          2
        ],
        [
          "simplify",
          "t2",
          1
        ],
        [
          "simplify",
          "t3",
          0
        ],
        [
          "color",
          "t3",
          0
        ],
        [
          "color",
          "t2",
          1
        ],
        [
          "actual-spill",
          "flag"
        ],
        [
          "actual-spill",
          "a"
        ],
        [
          "color",
          "v",
          0
        ],
        [
          "color",
          "y",
          0
        ],
        [
          "color",
          "t5",
          0
        ]
      ],
      "target": {
        "E": [
          [
            "IN",
            "S0",
            "a"
          ],
          [
            "ST",
            "slot0",
            "S0"
          ],
          [
            "IN",
            "S0",
            "flag"
          ],
          [
            "ST",
            "slot1",
            "S0"
          ],
          [
            "LD",
            "S0",
            "slot0"
          ],
          [
            "ADD",
            "R1",
            "S0",
            1
          ],
          [
            "LD",
            "S0",
            "slot0"
          ],
          [
            "ADD",
            "R0",
            "S0",
            2
          ],
          [
            "LD",
            "S0",
            "slot1"
          ],
          [
            "BR",
            "S0",
            "T",
            "F"
          ]
        ],
        "T": [
          [
            "ADD",
            "R0",
            "R1",
            "R0"
          ],
          [
            "JMP",
            "J"
          ]
        ],
        "F": [
          [
            "SUB",
            "R0",
            "R1",
            "R0"
          ],
          [
            "JMP",
            "J"
          ]
        ],
        "J": [
          [
            "CALL2"
          ],
          [
            "LD",
            "S0",
            "slot0"
          ],
          [
            "ADD",
            "R0",
            "S0",
            "R0"
          ],
          [
            "RET",
            "R0"
          ]
        ]
      },
      "aliases": {
        "$R0": "$R0",
        "$R1": "$R1",
        "a": "a",
        "flag": "flag",
        "t2": "t2",
        "t3": "t3",
        "t4": "v",
        "t5": "t5",
        "v": "v",
        "y": "y"
      }
    }
  },
  "examples": [
    {
      "input": {
        "a": 3,
        "flag": 0
      },
      "source": {
        "value": 1,
        "branches": [
          false
        ],
        "steps": 11
      },
      "target_counts": {
        "color": {
          "IN": 2,
          "ST": 2,
          "LD": 4,
          "ADD": 3,
          "BR": 1,
          "SUB": 1,
          "JMP": 1,
          "CALL2": 1,
          "RET": 1
        },
        "linear": {
          "IN": 2,
          "ST": 2,
          "LD": 4,
          "ADD": 3,
          "BR": 1,
          "SUB": 1,
          "JMP": 1,
          "CALL2": 1,
          "RET": 1
        },
        "coalesce": {
          "IN": 2,
          "ST": 2,
          "LD": 4,
          "ADD": 3,
          "BR": 1,
          "SUB": 1,
          "JMP": 1,
          "CALL2": 1,
          "RET": 1
        }
      }
    },
    {
      "input": {
        "a": 3,
        "flag": 1
      },
      "source": {
        "value": 21,
        "branches": [
          true
        ],
        "steps": 11
      },
      "target_counts": {
        "color": {
          "IN": 2,
          "ST": 2,
          "LD": 4,
          "ADD": 4,
          "BR": 1,
          "JMP": 1,
          "CALL2": 1,
          "RET": 1
        },
        "linear": {
          "IN": 2,
          "ST": 2,
          "LD": 4,
          "ADD": 4,
          "BR": 1,
          "JMP": 1,
          "CALL2": 1,
          "RET": 1
        },
        "coalesce": {
          "IN": 2,
          "ST": 2,
          "LD": 4,
          "ADD": 4,
          "BR": 1,
          "JMP": 1,
          "CALL2": 1,
          "RET": 1
        }
      }
    }
  ],
  "source_target_checks": 492,
  "split_source": {
    "E": [
      [
        "input",
        "a@E",
        "a"
      ],
      [
        "input",
        "flag@E",
        "flag"
      ],
      [
        "add",
        "t2@E",
        "a@E",
        1
      ],
      [
        "add",
        "t3@E",
        "a@E",
        2
      ],
      [
        "br",
        "flag@E",
        "edge:E>T",
        "edge:E>F"
      ]
    ],
    "T": [
      [
        "add",
        "t4@T",
        "t2@T",
        "t3@T"
      ],
      [
        "jmp",
        "edge:T>J"
      ]
    ],
    "F": [
      [
        "sub",
        "t4@F",
        "t2@F",
        "t3@F"
      ],
      [
        "jmp",
        "edge:F>J"
      ]
    ],
    "J": [
      [
        "mov",
        "v@J",
        "t4@J"
      ],
      [
        "call",
        "t5@J",
        "v@J"
      ],
      [
        "add",
        "y@J",
        "a@J",
        "t5@J"
      ],
      [
        "ret",
        "y@J"
      ]
    ],
    "edge:E>T": [
      [
        "pcopy",
        [
          [
            "a@T",
            "a@E"
          ],
          [
            "t2@T",
            "t2@E"
          ],
          [
            "t3@T",
            "t3@E"
          ]
        ]
      ],
      [
        "jmp",
        "T"
      ]
    ],
    "edge:E>F": [
      [
        "pcopy",
        [
          [
            "a@F",
            "a@E"
          ],
          [
            "t2@F",
            "t2@E"
          ],
          [
            "t3@F",
            "t3@E"
          ]
        ]
      ],
      [
        "jmp",
        "F"
      ]
    ],
    "edge:T>J": [
      [
        "pcopy",
        [
          [
            "a@J",
            "a@T"
          ],
          [
            "t4@J",
            "t4@T"
          ]
        ]
      ],
      [
        "jmp",
        "J"
      ]
    ],
    "edge:F>J": [
      [
        "pcopy",
        [
          [
            "a@J",
            "a@F"
          ],
          [
            "t4@J",
            "t4@F"
          ]
        ]
      ],
      [
        "jmp",
        "J"
      ]
    ]
  },
  "split": {
    "color": {
      "locations": {
        "a@E": "slot0",
        "a@F": "slot1",
        "a@J": "R1",
        "a@T": "slot2",
        "flag@E": "slot3",
        "t2@E": "R1",
        "t2@F": "R1",
        "t2@T": "R1",
        "t3@E": "R0",
        "t3@F": "R0",
        "t3@T": "R0",
        "t4@F": "R0",
        "t4@J": "R0",
        "t4@T": "R0",
        "t5@J": "R0",
        "v@J": "R0",
        "y@J": "R0"
      },
      "trace": [
        [
          "simplify",
          "t4@F",
          1
        ],
        [
          "simplify",
          "t4@J",
          1
        ],
        [
          "simplify",
          "t4@T",
          1
        ],
        [
          "simplify",
          "t5@J",
          1
        ],
        [
          "simplify",
          "v@J",
          1
        ],
        [
          "simplify",
          "a@J",
          1
        ],
        [
          "simplify",
          "y@J",
          0
        ],
        [
          "potential-spill",
          "a@E",
          3
        ],
        [
          "potential-spill",
          "a@F",
          2
        ],
        [
          "simplify",
          "t2@F",
          1
        ],
        [
          "simplify",
          "t3@F",
          0
        ],
        [
          "potential-spill",
          "a@T",
          2
        ],
        [
          "simplify",
          "t2@T",
          1
        ],
        [
          "simplify",
          "t3@T",
          0
        ],
        [
          "potential-spill",
          "flag@E",
          2
        ],
        [
          "simplify",
          "t2@E",
          1
        ],
        [
          "simplify",
          "t3@E",
          0
        ],
        [
          "color",
          "t3@E",
          0
        ],
        [
          "color",
          "t2@E",
          1
        ],
        [
          "actual-spill",
          "flag@E"
        ],
        [
          "color",
          "t3@T",
          0
        ],
        [
          "color",
          "t2@T",
          1
        ],
        [
          "actual-spill",
          "a@T"
        ],
        [
          "color",
          "t3@F",
          0
        ],
        [
          "color",
          "t2@F",
          1
        ],
        [
          "actual-spill",
          "a@F"
        ],
        [
          "actual-spill",
          "a@E"
        ],
        [
          "color",
          "y@J",
          0
        ],
        [
          "color",
          "a@J",
          1
        ],
        [
          "color",
          "v@J",
          0
        ],
        [
          "color",
          "t5@J",
          0
        ],
        [
          "color",
          "t4@T",
          0
        ],
        [
          "color",
          "t4@J",
          0
        ],
        [
          "color",
          "t4@F",
          0
        ]
      ],
      "target": {
        "E": [
          [
            "IN",
            "S0",
            "a"
          ],
          [
            "ST",
            "slot0",
            "S0"
          ],
          [
            "IN",
            "S0",
            "flag"
          ],
          [
            "ST",
            "slot3",
            "S0"
          ],
          [
            "LD",
            "S0",
            "slot0"
          ],
          [
            "ADD",
            "R1",
            "S0",
            1
          ],
          [
            "LD",
            "S0",
            "slot0"
          ],
          [
            "ADD",
            "R0",
            "S0",
            2
          ],
          [
            "LD",
            "S0",
            "slot3"
          ],
          [
            "BR",
            "S0",
            "edge:E>T",
            "edge:E>F"
          ]
        ],
        "T": [
          [
            "ADD",
            "R0",
            "R1",
            "R0"
          ],
          [
            "JMP",
            "edge:T>J"
          ]
        ],
        "F": [
          [
            "SUB",
            "R0",
            "R1",
            "R0"
          ],
          [
            "JMP",
            "edge:F>J"
          ]
        ],
        "J": [
          [
            "CALL2"
          ],
          [
            "ADD",
            "R0",
            "R1",
            "R0"
          ],
          [
            "RET",
            "R0"
          ]
        ],
        "edge:E>T": [
          [
            "LD",
            "S0",
            "slot0"
          ],
          [
            "ST",
            "slot2",
            "S0"
          ],
          [
            "JMP",
            "T"
          ]
        ],
        "edge:E>F": [
          [
            "LD",
            "S0",
            "slot0"
          ],
          [
            "ST",
            "slot1",
            "S0"
          ],
          [
            "JMP",
            "F"
          ]
        ],
        "edge:T>J": [
          [
            "LD",
            "S0",
            "slot2"
          ],
          [
            "MOV",
            "R1",
            "S0"
          ],
          [
            "JMP",
            "J"
          ]
        ],
        "edge:F>J": [
          [
            "LD",
            "S0",
            "slot1"
          ],
          [
            "MOV",
            "R1",
            "S0"
          ],
          [
            "JMP",
            "J"
          ]
        ]
      }
    },
    "linear": {
      "locations": {
        "a@E": "slot0",
        "a@F": "slot1",
        "a@J": "slot2",
        "a@T": "slot3",
        "flag@E": "R0",
        "t2@E": "slot4",
        "t2@F": "slot5",
        "t2@T": "R1",
        "t3@E": "slot6",
        "t3@F": "slot7",
        "t3@T": "slot8",
        "t4@F": "slot9",
        "t4@J": "slot10",
        "t4@T": "slot11",
        "t5@J": "R0",
        "v@J": "R0",
        "y@J": "R0"
      },
      "trace": [
        [
          "assign",
          "a@E",
          1
        ],
        [
          "assign",
          "flag@E",
          0
        ],
        [
          "spill-whole",
          "t2@E"
        ],
        [
          "spill-whole",
          "t3@E"
        ],
        [
          "spill-whole",
          "a@T"
        ],
        [
          "evict-whole",
          "a@E",
          "t2@T"
        ],
        [
          "spill-whole",
          "t3@T"
        ],
        [
          "spill-whole",
          "t4@T"
        ],
        [
          "spill-whole",
          "a@F"
        ],
        [
          "spill-whole",
          "t2@F"
        ],
        [
          "spill-whole",
          "t3@F"
        ],
        [
          "spill-whole",
          "t4@F"
        ],
        [
          "spill-whole",
          "a@J"
        ],
        [
          "spill-whole",
          "t4@J"
        ],
        [
          "assign",
          "v@J",
          0
        ],
        [
          "assign",
          "t5@J",
          0
        ],
        [
          "assign",
          "y@J",
          0
        ]
      ],
      "target": {
        "E": [
          [
            "IN",
            "S0",
            "a"
          ],
          [
            "ST",
            "slot0",
            "S0"
          ],
          [
            "IN",
            "R0",
            "flag"
          ],
          [
            "LD",
            "S0",
            "slot0"
          ],
          [
            "ADD",
            "S0",
            "S0",
            1
          ],
          [
            "ST",
            "slot4",
            "S0"
          ],
          [
            "LD",
            "S0",
            "slot0"
          ],
          [
            "ADD",
            "S0",
            "S0",
            2
          ],
          [
            "ST",
            "slot6",
            "S0"
          ],
          [
            "BR",
            "R0",
            "edge:E>T",
            "edge:E>F"
          ]
        ],
        "T": [
          [
            "LD",
            "S1",
            "slot8"
          ],
          [
            "ADD",
            "S0",
            "R1",
            "S1"
          ],
          [
            "ST",
            "slot11",
            "S0"
          ],
          [
            "JMP",
            "edge:T>J"
          ]
        ],
        "F": [
          [
            "LD",
            "S0",
            "slot5"
          ],
          [
            "LD",
            "S1",
            "slot7"
          ],
          [
            "SUB",
            "S0",
            "S0",
            "S1"
          ],
          [
            "ST",
            "slot9",
            "S0"
          ],
          [
            "JMP",
            "edge:F>J"
          ]
        ],
        "J": [
          [
            "LD",
            "S0",
            "slot10"
          ],
          [
            "MOV",
            "R0",
            "S0"
          ],
          [
            "CALL2"
          ],
          [
            "LD",
            "S0",
            "slot2"
          ],
          [
            "ADD",
            "R0",
            "S0",
            "R0"
          ],
          [
            "RET",
            "R0"
          ]
        ],
        "edge:E>T": [
          [
            "LD",
            "S0",
            "slot4"
          ],
          [
            "MOV",
            "R1",
            "S0"
          ],
          [
            "LD",
            "S0",
            "slot0"
          ],
          [
            "ST",
            "slot3",
            "S0"
          ],
          [
            "LD",
            "S0",
            "slot6"
          ],
          [
            "ST",
            "slot8",
            "S0"
          ],
          [
            "JMP",
            "T"
          ]
        ],
        "edge:E>F": [
          [
            "LD",
            "S0",
            "slot0"
          ],
          [
            "ST",
            "slot1",
            "S0"
          ],
          [
            "LD",
            "S0",
            "slot4"
          ],
          [
            "ST",
            "slot5",
            "S0"
          ],
          [
            "LD",
            "S0",
            "slot6"
          ],
          [
            "ST",
            "slot7",
            "S0"
          ],
          [
            "JMP",
            "F"
          ]
        ],
        "edge:T>J": [
          [
            "LD",
            "S0",
            "slot11"
          ],
          [
            "ST",
            "slot10",
            "S0"
          ],
          [
            "LD",
            "S0",
            "slot3"
          ],
          [
            "ST",
            "slot2",
            "S0"
          ],
          [
            "JMP",
            "J"
          ]
        ],
        "edge:F>J": [
          [
            "LD",
            "S0",
            "slot9"
          ],
          [
            "ST",
            "slot10",
            "S0"
          ],
          [
            "LD",
            "S0",
            "slot1"
          ],
          [
            "ST",
            "slot2",
            "S0"
          ],
          [
            "JMP",
            "J"
          ]
        ]
      }
    },
    "coalesce": {
      "locations": {
        "a@E": "slot0",
        "a@F": "slot1",
        "a@J": "R1",
        "a@T": "slot2",
        "flag@E": "slot3",
        "t2@E": "R1",
        "t2@F": "R1",
        "t2@T": "R1",
        "t3@E": "R0",
        "t3@F": "R0",
        "t3@T": "R0",
        "t4@F": "R0",
        "t4@J": "R0",
        "t4@T": "R0",
        "t5@J": "R0",
        "v@J": "R0",
        "y@J": "R0"
      },
      "trace": [
        [
          "simplify",
          "t5@J",
          1
        ],
        [
          "simplify",
          "y@J",
          0
        ],
        [
          "coalesce",
          "v@J",
          "t4@J"
        ],
        [
          "freeze",
          "t4@F",
          1
        ],
        [
          "simplify",
          "t4@F",
          1
        ],
        [
          "freeze",
          "t4@T",
          1
        ],
        [
          "simplify",
          "t4@T",
          1
        ],
        [
          "simplify",
          "v@J",
          1
        ],
        [
          "freeze",
          "a@J",
          2
        ],
        [
          "simplify",
          "a@J",
          1
        ],
        [
          "freeze",
          "a@E",
          2
        ],
        [
          "potential-spill",
          "a@E",
          3
        ],
        [
          "potential-spill",
          "a@F",
          2
        ],
        [
          "freeze",
          "t2@F",
          1
        ],
        [
          "simplify",
          "t2@F",
          1
        ],
        [
          "freeze",
          "t3@F",
          1
        ],
        [
          "simplify",
          "t3@F",
          0
        ],
        [
          "potential-spill",
          "a@T",
          2
        ],
        [
          "freeze",
          "t2@T",
          1
        ],
        [
          "simplify",
          "t2@T",
          1
        ],
        [
          "freeze",
          "t3@T",
          1
        ],
        [
          "simplify",
          "t3@T",
          0
        ],
        [
          "potential-spill",
          "flag@E",
          2
        ],
        [
          "simplify",
          "t2@E",
          1
        ],
        [
          "simplify",
          "t3@E",
          0
        ],
        [
          "color",
          "t3@E",
          0
        ],
        [
          "color",
          "t2@E",
          1
        ],
        [
          "actual-spill",
          "flag@E"
        ],
        [
          "color",
          "t3@T",
          0
        ],
        [
          "color",
          "t2@T",
          1
        ],
        [
          "actual-spill",
          "a@T"
        ],
        [
          "color",
          "t3@F",
          0
        ],
        [
          "color",
          "t2@F",
          1
        ],
        [
          "actual-spill",
          "a@F"
        ],
        [
          "actual-spill",
          "a@E"
        ],
        [
          "color",
          "a@J",
          1
        ],
        [
          "color",
          "v@J",
          0
        ],
        [
          "color",
          "t4@T",
          0
        ],
        [
          "color",
          "t4@F",
          0
        ],
        [
          "color",
          "y@J",
          0
        ],
        [
          "color",
          "t5@J",
          0
        ]
      ],
      "target": {
        "E": [
          [
            "IN",
            "S0",
            "a"
          ],
          [
            "ST",
            "slot0",
            "S0"
          ],
          [
            "IN",
            "S0",
            "flag"
          ],
          [
            "ST",
            "slot3",
            "S0"
          ],
          [
            "LD",
            "S0",
            "slot0"
          ],
          [
            "ADD",
            "R1",
            "S0",
            1
          ],
          [
            "LD",
            "S0",
            "slot0"
          ],
          [
            "ADD",
            "R0",
            "S0",
            2
          ],
          [
            "LD",
            "S0",
            "slot3"
          ],
          [
            "BR",
            "S0",
            "edge:E>T",
            "edge:E>F"
          ]
        ],
        "T": [
          [
            "ADD",
            "R0",
            "R1",
            "R0"
          ],
          [
            "JMP",
            "edge:T>J"
          ]
        ],
        "F": [
          [
            "SUB",
            "R0",
            "R1",
            "R0"
          ],
          [
            "JMP",
            "edge:F>J"
          ]
        ],
        "J": [
          [
            "CALL2"
          ],
          [
            "ADD",
            "R0",
            "R1",
            "R0"
          ],
          [
            "RET",
            "R0"
          ]
        ],
        "edge:E>T": [
          [
            "LD",
            "S0",
            "slot0"
          ],
          [
            "ST",
            "slot2",
            "S0"
          ],
          [
            "JMP",
            "T"
          ]
        ],
        "edge:E>F": [
          [
            "LD",
            "S0",
            "slot0"
          ],
          [
            "ST",
            "slot1",
            "S0"
          ],
          [
            "JMP",
            "F"
          ]
        ],
        "edge:T>J": [
          [
            "LD",
            "S0",
            "slot2"
          ],
          [
            "MOV",
            "R1",
            "S0"
          ],
          [
            "JMP",
            "J"
          ]
        ],
        "edge:F>J": [
          [
            "LD",
            "S0",
            "slot1"
          ],
          [
            "MOV",
            "R1",
            "S0"
          ],
          [
            "JMP",
            "J"
          ]
        ]
      },
      "aliases": {
        "$R0": "$R0",
        "$R1": "$R1",
        "a@E": "a@E",
        "a@F": "a@F",
        "a@J": "a@J",
        "a@T": "a@T",
        "flag@E": "flag@E",
        "t2@E": "t2@E",
        "t2@F": "t2@F",
        "t2@T": "t2@T",
        "t3@E": "t3@E",
        "t3@F": "t3@F",
        "t3@T": "t3@T",
        "t4@F": "t4@F",
        "t4@J": "v@J",
        "t4@T": "t4@T",
        "t5@J": "t5@J",
        "v@J": "v@J",
        "y@J": "y@J"
      }
    }
  },
  "square": {
    "locations": {
      "a": "R1",
      "b": "R0",
      "c": "R1",
      "d": "R0"
    },
    "trace": [
      [
        "potential-spill",
        "a",
        2
      ],
      [
        "simplify",
        "b",
        1
      ],
      [
        "simplify",
        "c",
        1
      ],
      [
        "simplify",
        "d",
        0
      ],
      [
        "color",
        "d",
        0
      ],
      [
        "color",
        "c",
        1
      ],
      [
        "color",
        "b",
        0
      ],
      [
        "color",
        "a",
        1
      ]
    ]
  },
  "triangle": {
    "locations": {
      "a": "slot0",
      "b": "R1",
      "c": "R0"
    },
    "trace": [
      [
        "potential-spill",
        "a",
        2
      ],
      [
        "simplify",
        "b",
        1
      ],
      [
        "simplify",
        "c",
        0
      ],
      [
        "color",
        "c",
        0
      ],
      [
        "color",
        "b",
        1
      ],
      [
        "actual-spill",
        "a"
      ]
    ]
  },
  "dead_write_wrong_return": 9,
  "irc_path_examples": {
    "a/c": {
      "locations": {
        "a": "R1",
        "b": "R0",
        "c": "R1",
        "d": "R1",
        "e": "R0"
      },
      "trace": [
        [
          "simplify",
          "d",
          1
        ],
        [
          "simplify",
          "b",
          1
        ],
        [
          "coalesce",
          "a",
          "c"
        ],
        [
          "simplify",
          "a",
          1
        ],
        [
          "simplify",
          "e",
          0
        ],
        [
          "color",
          "e",
          0
        ],
        [
          "color",
          "a",
          1
        ],
        [
          "color",
          "b",
          0
        ],
        [
          "color",
          "d",
          1
        ]
      ],
      "aliases": {
        "a": "a",
        "b": "b",
        "c": "a",
        "d": "d",
        "e": "e"
      }
    },
    "a/b": {
      "locations": {
        "a": "R1",
        "b": "R0",
        "c": "R1",
        "d": "R1",
        "e": "R0"
      },
      "trace": [
        [
          "simplify",
          "d",
          1
        ],
        [
          "freeze",
          "a",
          1
        ],
        [
          "simplify",
          "a",
          1
        ],
        [
          "simplify",
          "b",
          1
        ],
        [
          "simplify",
          "c",
          1
        ],
        [
          "simplify",
          "e",
          0
        ],
        [
          "color",
          "e",
          0
        ],
        [
          "color",
          "c",
          1
        ],
        [
          "color",
          "b",
          0
        ],
        [
          "color",
          "a",
          1
        ],
        [
          "color",
          "d",
          1
        ]
      ],
      "aliases": {
        "a": "a",
        "b": "b",
        "c": "c",
        "d": "d",
        "e": "e"
      }
    }
  },
  "half_open_adjacency": {
    "a": "R0",
    "b": "R0"
  },
  "loop_target_checks": 126,
  "rematerialization": {
    "ordinary": {
      "E": [
        [
          "ST",
          "slot0",
          7
        ],
        [
          "IN",
          "R0",
          "x"
        ],
        [
          "LD",
          "S1",
          "slot0"
        ],
        [
          "ADD",
          "R0",
          "R0",
          "S1"
        ],
        [
          "LD",
          "S1",
          "slot0"
        ],
        [
          "ADD",
          "R0",
          "R0",
          "S1"
        ],
        [
          "RET",
          "R0"
        ]
      ]
    },
    "rebuilt": {
      "E": [
        [
          "IN",
          "R0",
          "x"
        ],
        [
          "IMM",
          "S1",
          7
        ],
        [
          "ADD",
          "R0",
          "R0",
          "S1"
        ],
        [
          "IMM",
          "S1",
          7
        ],
        [
          "ADD",
          "R0",
          "R0",
          "S1"
        ],
        [
          "RET",
          "R0"
        ]
      ]
    },
    "ordinary_run": {
      "value": 17,
      "branches": [],
      "counts": {
        "ST": 1,
        "IN": 1,
        "LD": 2,
        "ADD": 2,
        "RET": 1
      },
      "steps": 7
    },
    "rebuilt_run": {
      "value": 17,
      "branches": [],
      "counts": {
        "IN": 1,
        "IMM": 2,
        "ADD": 2,
        "RET": 1
      },
      "steps": 6
    }
  }
}
