This patch dumps every state trait in the egraph. Also the empty state traits are no longer dumped, instead they are treated as null by the egraph rewriter script, which solves reverse compatibility issues. Differential Revision: https://reviews.llvm.org/D131187
105 lines
2.7 KiB
Plaintext
105 lines
2.7 KiB
Plaintext
// RUN: %exploded_graph_rewriter -d %s | FileCheck %s
|
|
|
|
Node0x1 [shape=record,label=
|
|
"{
|
|
{ "state_id": 2,
|
|
"program_points": [
|
|
{
|
|
"kind": "BlockEntrance", "block_id": 1,
|
|
"terminator": null, "term_kind": null,
|
|
"tag": null, "node_id": 1,
|
|
"has_report": 0, "is_sink": 0
|
|
}
|
|
],
|
|
"program_state": {
|
|
"environment": null,
|
|
"store": null,
|
|
"constraints": null,
|
|
"dynamic_types": null,
|
|
"checker_messages": [
|
|
{ "checker": "FooChecker", "messages": [
|
|
"Foo: Bar"
|
|
]},
|
|
{ "checker": "BarChecker", "messages": [
|
|
"Bar: Foo"
|
|
]}
|
|
]
|
|
}
|
|
}
|
|
\l}"];
|
|
|
|
Node0x1 -> Node0x4;
|
|
|
|
|
|
// CHECK: Node0x4 [
|
|
// CHECK-SAME: <tr>
|
|
// CHECK-SAME: <td><font color="red">-</font></td>
|
|
// CHECK-SAME: <td align="left"><i>BarChecker</i>:</td>
|
|
// CHECK-SAME: </tr>
|
|
// CHECK-SAME: <tr>
|
|
// CHECK-SAME: <td><font color="red">-</font></td>
|
|
// CHECK-SAME: <td align="left">Bar: Foo</td>
|
|
// CHECK-SAME: </tr>
|
|
// CHECK-SAME: <tr>
|
|
// CHECK-SAME: <td></td>
|
|
// CHECK-SAME: <td align="left"><i>FooChecker</i>:</td>
|
|
// CHECK-SAME: </tr>
|
|
// CHECK-SAME: <tr>
|
|
// CHECK-SAME: <td><font color="forestgreen">+</font></td>
|
|
// CHECK-SAME: <td align="left"> Bar: Foo</td>
|
|
// CHECK-SAME: </tr>
|
|
// CHECK-SAME: <tr>
|
|
// CHECK-SAME: <td><font color="forestgreen">+</font></td>
|
|
// CHECK-SAME: <td align="left"><i>DunnoWhateverSomeOtherChecker</i>:</td>
|
|
// CHECK-SAME: </tr>
|
|
// CHECK-SAME: <tr>
|
|
// CHECK-SAME: <td><font color="forestgreen">+</font></td>
|
|
// CHECK-SAME: <td align="left">Dunno, some other message.</td>
|
|
// CHECK-SAME: </tr>
|
|
Node0x4 [shape=record,label=
|
|
"{
|
|
{
|
|
"state_id": 5,
|
|
"program_points": [
|
|
{
|
|
"kind": "BlockEntrance", "block_id": 1,
|
|
"terminator": null, "term_kind": null,
|
|
"tag": null, "node_id": 1,
|
|
"has_report": 0, "is_sink": 0
|
|
}
|
|
],
|
|
"program_state": {
|
|
"environment": null,
|
|
"store": null,
|
|
"constraints": null,
|
|
"dynamic_types": null,
|
|
"checker_messages": [
|
|
{ "checker": "FooChecker", "messages": [
|
|
"Foo: Bar",
|
|
"Bar: Foo"
|
|
]},
|
|
{ "checker": "DunnoWhateverSomeOtherChecker", "messages": [
|
|
"Dunno, some other message."
|
|
]}
|
|
]
|
|
}
|
|
}
|
|
\l}"];
|
|
|
|
Node0x4 -> Node0x6;
|
|
|
|
Node0x6 [shape=record,label=
|
|
"{
|
|
{ "state_id": 7,
|
|
"program_points": [
|
|
{
|
|
"kind": "BlockEntrance", "block_id": 1,
|
|
"terminator": null, "term_kind": null,
|
|
"tag": null, "node_id": 1,
|
|
"has_report": 0, "is_sink": 0
|
|
}
|
|
],
|
|
"program_state": null
|
|
}
|
|
\l}"];
|