The gcc compiler generated dot graph data from the rtl data using
labels for record nodes.
It is also possible to generate dot graph data from rtl data using
egypt call graph script at https://www.gson.org/egypt/egypt.html
Or a C based tool can be used at https://gitlab.com/mooigraph/gccrtl2gml
for gml graph data from rtl data
Using gml4gtk dot graph rtl data it looks like this:

And every function() has it's own subgraph which can be cut with a
editor for a smaller dot graph
and the dot graph data for such a function() looks like this and add
the surrounding "digraph g { ...}"
to have a usable small dot graph only of this funtion();
subgraph "cluster_rhp_init" {
style="dashed";
color="black";
label="rhp_init ()";
fn_3_basic_block_0
[shape=Mdiamond,style=filled,fillcolor=white,label="ENTRY"];
fn_3_basic_block_1
[shape=Mdiamond,style=filled,fillcolor=white,label="EXIT"];
fn_3_basic_block_2
[shape=record,style=filled,fillcolor=lightgrey,label="{ FREQ:0 |\ \
\ \ 5:\ NOTE_INSN_BASIC_BLOCK\ 2\l\
|\ \ \ \ 2:\ [frame:DI-0x8]=di:DI\l\
|\ \ \ \ 3:\ [frame:DI-0xc]=si:SI\l\
|\ \ \ \ 4:\ NOTE_INSN_FUNCTION_BEG\l\
|\ \ \ \ 7:\ r87:SI=[`rhp_inited']\l\
|\ \ \ \ 8:\ flags:CCZ=cmp(r87:SI,0)\l\
|\ \ \ \ 9:\ pc=\{(flags:CCZ==0)?L16:pc\}\l\
}"];
fn_3_basic_block_3
[shape=record,style=filled,fillcolor=lightgrey,label="{ FREQ:0 |\ \
\ 10:\ NOTE_INSN_BASIC_BLOCK\ 3\l\
|\ \ \ 11:\ si:DI=`__FUNCTION__.3495'\l\
|\ \ \ 12:\ di:DI=`*.LC1'\l\
|\ \ \ 13:\ ax:QI=0\l\
|\ \ \ 14:\ call\ [`rhp_log']\ argc:0\l\
|\ \ \ 15:\ call\ [`rhp_deinit']\ argc:0\l\
}"];
fn_3_basic_block_4
[shape=record,style=filled,fillcolor=lightgrey,label="{ FREQ:0 |\ \
\ 16:\ L16:\l\
|\ \ \ 17:\ NOTE_INSN_BASIC_BLOCK\ 4\l\
|\ \ \ 18:\ [`rhp_logstream']=0\l\
|\ \ \ 19:\ [`rhp_dolog']=0\l\
|\ \ \ 20:\ [`rhp_logname']=0\l\
|\ \ \ 21:\ flags:CCZ=cmp([frame:DI-0x8],0)\l\
|\ \ \ 22:\ pc=\{(flags:CCZ==0)?L55:pc\}\l\
}"];
fn_3_basic_block_5
[shape=record,style=filled,fillcolor=lightgrey,label="{ FREQ:0 |\ \
\ 23:\ NOTE_INSN_BASIC_BLOCK\ 5\l\
|\ \ \ 24:\ r96:DI=[frame:DI-0x8]\l\
|\ \ \ 25:\ r88:QI=[r96:DI]\l\
|\ \ \ 26:\ flags:CCZ=cmp(r88:QI,0)\l\
|\ \ \ 27:\ pc=\{(flags:CCZ!=0)?L33:pc\}\l\
}"];
fn_3_basic_block_6
[shape=record,style=filled,fillcolor=lightgrey,label="{ FREQ:0 |\ \
\ 28:\ NOTE_INSN_BASIC_BLOCK\ 6\l\
|\ \ \ 29:\ r89:DI=[`stdout']\l\
|\ \ \ 30:\ [`rhp_logstream']=r89:DI\l\
}"];
fn_3_basic_block_7
[shape=record,style=filled,fillcolor=lightgrey,label="{ FREQ:0 |\ \
\ 33:\ L33:\l\
|\ \ \ 34:\ NOTE_INSN_BASIC_BLOCK\ 7\l\
|\ \ \ 35:\ r97:DI=[frame:DI-0x8]\l\
|\ \ \ 36:\ si:DI=`*.LC2'\l\
|\ \ \ 37:\ di:DI=r97:DI\l\
|\ \ \ 38:\ ax:DI=call\ [`fopen']\ argc:0\l\
|\ \ \ 39:\ r90:DI=ax:DI\l\
|\ \ \ 40:\ [`rhp_logstream']=r90:DI\l\
|\ \ \ 41:\ r91:DI=[`rhp_logstream']\l\
|\ \ \ 42:\ flags:CCZ=cmp(r91:DI,0)\l\
|\ \ \ 43:\ pc=\{(flags:CCZ!=0)?L47:pc\}\l\
}"];
fn_3_basic_block_8
[shape=record,style=filled,fillcolor=lightgrey,label="{ FREQ:0 |\ \
\ 44:\ NOTE_INSN_BASIC_BLOCK\ 8\l\
|\ \ \ 45:\ r92:DI=[`stdout']\l\
|\ \ \ 46:\ [`rhp_logstream']=r92:DI\l\
}"];
fn_3_basic_block_9
[shape=record,style=filled,fillcolor=lightgrey,label="{ FREQ:0 |\ \
\ 47:\ L47:\l\
|\ \ \ 48:\ NOTE_INSN_BASIC_BLOCK\ 9\l\
|\ \ \ 49:\ r98:SI=[frame:DI-0xc]\l\
|\ \ \ 50:\ [`rhp_dolog']=r98:SI\l\
|\ \ \ 51:\ si:DI=`__FUNCTION__.3495'\l\
|\ \ \ 52:\ di:DI=`*.LC3'\l\
|\ \ \ 53:\ ax:QI=0\l\
|\ \ \ 54:\ call\ [`rhp_log']\ argc:0\l\
}"];
fn_3_basic_block_10
[shape=record,style=filled,fillcolor=lightgrey,label="{ FREQ:0 |\ \
\ 55:\ L55:\l\
|\ \ \ 56:\ NOTE_INSN_BASIC_BLOCK\ 10\l\
|\ \ \ 57:\ di:SI=0x1\l\
|\ \ \ 58:\ ax:DI=call\ [`rhp_sp_new']\ argc:0\l\
|\ \ \ 59:\ r93:DI=ax:DI\l\
|\ \ \ 60:\ [`rhp_sp_master_node_list']=r93:DI\l\
|\ \ \ 61:\ di:SI=0x1\l\
|\ \ \ 62:\ ax:DI=call\ [`rhp_sp_new']\ argc:0\l\
|\ \ \ 63:\ r94:DI=ax:DI\l\
|\ \ \ 64:\ [`rhp_sp_master_edge_list']=r94:DI\l\
|\ \ \ 65:\ [`rhp_uniq_nodenum']=0\l\
|\ \ \ 66:\ [`rhp_uniq_edgenum']=0\l\
|\ \ \ 67:\ [`rhp_number_of_nodes']=0\l\
|\ \ \ 68:\ [`rhp_number_of_edges']=0\l\
|\ \ \ 69:\ [`rhp_number_of_isolated_nodes']=0\l\
|\ \ \ 70:\ di:SI=0x1\l\
|\ \ \ 71:\ ax:DI=call\ [`rhp_sp_new']\ argc:0\l\
|\ \ \ 72:\ r95:DI=ax:DI\l\
|\ \ \ 73:\ [`rhp_sp_between_layers']=r95:DI\l\
|\ \ \ 74:\ [`rhp_maxlevel']=0\l\
|\ \ \ 75:\ [`rhp_nlevels']=0\l\
|\ \ \ 76:\ [`rhp_crossings']=0xffffffffffffffff\l\
|\ \ \ 77:\ [`rhp_start_crossings']=0xffffffffffffffff\l\
|\ \ \ 78:\ [`rhp_best_crossings_order']=0\l\
|\ \ \ 79:\ [`rhp_getlayoutdata']=0\l\
|\ \ \ 80:\ [`rhp_improvements']=0\l\
|\ \ \ 81:\ [`rhp_notimprovements']=0\l\
|\ \ \ 82:\ dx:SI=0x4\l\
|\ \ \ 83:\ si:DI=`__FUNCTION__.3495'\l\
|\ \ \ 84:\ di:DI=`*.LC4'\l\
|\ \ \ 85:\ ax:QI=0\l\
|\ \ \ 86:\ call\ [`rhp_log']\ argc:0\l\
|\ \ \ 87:\ dx:SI=0x8\l\
|\ \ \ 88:\ si:DI=`__FUNCTION__.3495'\l\
|\ \ \ 89:\ di:DI=`*.LC5'\l\
|\ \ \ 90:\ ax:QI=0\l\
|\ \ \ 91:\ call\ [`rhp_log']\ argc:0\l\
|\ \ \ 92:\ dx:SI=0x8\l\
|\ \ \ 93:\ si:DI=`__FUNCTION__.3495'\l\
|\ \ \ 94:\ di:DI=`*.LC6'\l\
|\ \ \ 95:\ ax:QI=0\l\
|\ \ \ 96:\ call\ [`rhp_log']\ argc:0\l\
|\ \ \ 97:\ dx:SI=0x8\l\
|\ \ \ 98:\ si:DI=`__FUNCTION__.3495'\l\
|\ \ \ 99:\ di:DI=`*.LC7'\l\
|\ \ 100:\ ax:QI=0\l\
|\ \ 101:\ call\ [`rhp_log']\ argc:0\l\
|\ \ 102:\ dx:SI=0x20\l\
|\ \ 103:\ si:DI=`__FUNCTION__.3495'\l\
|\ \ 104:\ di:DI=`*.LC8'\l\
|\ \ 105:\ ax:QI=0\l\
|\ \ 106:\ call\ [`rhp_log']\ argc:0\l\
|\ \ 107:\ dx:SI=0x10\l\
|\ \ 108:\ si:DI=`__FUNCTION__.3495'\l\
|\ \ 109:\ di:DI=`*.LC9'\l\
|\ \ 110:\ ax:QI=0\l\
|\ \ 111:\ call\ [`rhp_log']\ argc:0\l\
|\ \ 112:\ dx:SI=0x50\l\
|\ \ 113:\ si:DI=`__FUNCTION__.3495'\l\
|\ \ 114:\ di:DI=`*.LC10'\l\
|\ \ 115:\ ax:QI=0\l\
|\ \ 116:\ call\ [`rhp_log']\ argc:0\l\
|\ \ 117:\ dx:SI=0x38\l\
|\ \ 118:\ si:DI=`__FUNCTION__.3495'\l\
|\ \ 119:\ di:DI=`*.LC11'\l\
|\ \ 120:\ ax:QI=0\l\
|\ \ 121:\ call\ [`rhp_log']\ argc:0\l\
|\ \ 122:\ dx:SI=0x10\l\
|\ \ 123:\ si:DI=`__FUNCTION__.3495'\l\
|\ \ 124:\ di:DI=`*.LC12'\l\
|\ \ 125:\ ax:QI=0\l\
|\ \ 126:\ call\ [`rhp_log']\ argc:0\l\
|\ \ 127:\ dx:SI=0x18\l\
|\ \ 128:\ si:DI=`__FUNCTION__.3495'\l\
|\ \ 129:\ di:DI=`*.LC13'\l\
|\ \ 130:\ ax:QI=0\l\
|\ \ 131:\ call\ [`rhp_log']\ argc:0\l\
|\ \ 132:\ dx:SI=0x18\l\
|\ \ 133:\ si:DI=`__FUNCTION__.3495'\l\
|\ \ 134:\ di:DI=`*.LC14'\l\
|\ \ 135:\ ax:QI=0\l\
|\ \ 136:\ call\ [`rhp_log']\ argc:0\l\
|\ \ 137:\ [`rhp_inited']=0x1\l\
|\ \ 142:\ 0\l\
}"];
fn_3_basic_block_0:s -> fn_3_basic_block_2:n
[style="solid,bold",color=blue,weight=100,constraint=true,
label="[0%]"];
fn_3_basic_block_2:s -> fn_3_basic_block_3:n
[style="solid,bold",color=blue,weight=100,constraint=true,
label="[0%]"];
fn_3_basic_block_2:s -> fn_3_basic_block_4:n
[style="solid,bold",color=black,weight=10,constraint=true,
label="[0%]"];
fn_3_basic_block_3:s -> fn_3_basic_block_4:n
[style="solid,bold",color=blue,weight=100,constraint=true,
label="[0%]"];
fn_3_basic_block_4:s -> fn_3_basic_block_5:n
[style="solid,bold",color=blue,weight=100,constraint=true,
label="[0%]"];
fn_3_basic_block_4:s -> fn_3_basic_block_10:n
[style="solid,bold",color=black,weight=10,constraint=true,
label="[0%]"];
fn_3_basic_block_5:s -> fn_3_basic_block_6:n
[style="solid,bold",color=blue,weight=100,constraint=true,
label="[0%]"];
fn_3_basic_block_5:s -> fn_3_basic_block_7:n
[style="solid,bold",color=black,weight=10,constraint=true,
label="[0%]"];
fn_3_basic_block_6:s -> fn_3_basic_block_9:n
[style="solid,bold",color=blue,weight=100,constraint=true,
label="[100%]"];
fn_3_basic_block_7:s -> fn_3_basic_block_8:n
[style="solid,bold",color=blue,weight=100,constraint=true,
label="[0%]"];
fn_3_basic_block_7:s -> fn_3_basic_block_9:n
[style="solid,bold",color=black,weight=10,constraint=true,
label="[0%]"];
fn_3_basic_block_8:s -> fn_3_basic_block_9:n
[style="solid,bold",color=blue,weight=100,constraint=true,
label="[0%]"];
fn_3_basic_block_9:s -> fn_3_basic_block_10:n
[style="solid,bold",color=blue,weight=100,constraint=true,
label="[0%]"];
fn_3_basic_block_10:s -> fn_3_basic_block_1:n
[style="solid,bold",color=blue,weight=100,constraint=true,
label="[100%]"];
fn_3_basic_block_0:s -> fn_3_basic_block_1:n
[style="invis",constraint=true];
}