mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-22 21:15:40 -04:00

ExplodedGraph nodes will now have a numeric identifier stored in them which will keep track of the order in which the nodes were created and it will be fully deterministic both accross runs and across machines. This is extremely useful for debugging as it allows reliably setting conditional breakpoints by node IDs. llvm-svn: 375186
93 lines
2.2 KiB
Plaintext
93 lines
2.2 KiB
Plaintext
// RUN: %exploded_graph_rewriter -d %s | FileCheck %s
|
|
|
|
// FIXME: Substitution doesn't seem to work on Windows.
|
|
// UNSUPPORTED: system-windows
|
|
|
|
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": {
|
|
"store": null,
|
|
"environment": null,
|
|
"dynamic_types": null,
|
|
"constructing_objects": null,
|
|
"checker_messages": null,
|
|
"constraints": [
|
|
{ "symbol": "reg_$0<x>", "range": "{ [0, 10] }" }
|
|
]
|
|
}
|
|
}
|
|
\l}"];
|
|
|
|
Node0x1 -> Node0x3;
|
|
|
|
// CHECK: Node0x3 [
|
|
// CHECK-SAME: <tr>
|
|
// CHECK-SAME: <td><font color="red">-</font></td>
|
|
// CHECK-SAME: <td align="left">reg_$0<x></td>
|
|
// CHECK-SAME: <td align="left">\{ [0, 10] \}</td>
|
|
// CHECK-SAME: </tr>
|
|
// CHECK-SAME: <tr>
|
|
// CHECK-SAME: <td><font color="forestgreen">+</font></td>
|
|
// CHECK-SAME: <td align="left">reg_$0<x></td>
|
|
// CHECK-SAME: <td align="left">\{ [0, 5] \}</td>
|
|
// CHECK-SAME: </tr>
|
|
Node0x3 [shape=record,label=
|
|
"{
|
|
{
|
|
"state_id": 4,
|
|
"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": {
|
|
"store": null,
|
|
"environment": null,
|
|
"dynamic_types": null,
|
|
"constructing_objects": null,
|
|
"checker_messages": null,
|
|
"constraints": [
|
|
{ "symbol": "reg_$0<x>", "range": "{ [0, 5] }" }
|
|
]
|
|
}
|
|
}
|
|
\l}"];
|
|
|
|
Node0x3 -> Node0x5;
|
|
|
|
Node0x5 [shape=record,label=
|
|
"{
|
|
{
|
|
"state_id": 6,
|
|
"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": {
|
|
"store": null,
|
|
"environment": null,
|
|
"constraints": null,
|
|
"dynamic_types": null,
|
|
"constructing_objects": null,
|
|
"checker_messages": null
|
|
}
|
|
}
|
|
\l}"];
|