Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
8cec1624
Commit
8cec1624
authored
Jul 03, 2007
by
Revital Eres
Committed by
Revital Eres
Jul 03, 2007
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
modulo-sched: print sccs and check it
From-SVN: r126249
parent
bb9e683e
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
60 additions
and
0 deletions
+60
-0
gcc/ChangeLog
+8
-0
gcc/ddg.c
+48
-0
gcc/ddg.h
+1
-0
gcc/modulo-sched.c
+3
-0
No files found.
gcc/ChangeLog
View file @
8cec1624
2007-07-03 Revital Eres <eres@il.ibm.com>
* ddg.c (print_sccs): New function.
(check_sccs): New function.
(create_ddg_all_sccs): Use it.
* ddg.h (print_sccs): Declare.
* modulo-sched.c (sms_order_nodes): Call print_sccs.
2007-07-03 Uros Bizjak <ubizjak@gmail.com>
2007-07-03 Uros Bizjak <ubizjak@gmail.com>
* targhooks.h (default_mode_for_suffix): New function declaration.
* targhooks.h (default_mode_for_suffix): New function declaration.
...
...
gcc/ddg.c
View file @
8cec1624
...
@@ -630,6 +630,30 @@ vcg_print_ddg (FILE *file, ddg_ptr g)
...
@@ -630,6 +630,30 @@ vcg_print_ddg (FILE *file, ddg_ptr g)
fprintf
(
file
,
"}
\n
"
);
fprintf
(
file
,
"}
\n
"
);
}
}
/* Dump the sccs in SCCS. */
void
print_sccs
(
FILE
*
file
,
ddg_all_sccs_ptr
sccs
,
ddg_ptr
g
)
{
unsigned
int
u
=
0
;
sbitmap_iterator
sbi
;
int
i
;
if
(
!
file
)
return
;
fprintf
(
file
,
"
\n
;; Number of SCC nodes - %d
\n
"
,
sccs
->
num_sccs
);
for
(
i
=
0
;
i
<
sccs
->
num_sccs
;
i
++
)
{
fprintf
(
file
,
"SCC number: %d
\n
"
,
i
);
EXECUTE_IF_SET_IN_SBITMAP
(
sccs
->
sccs
[
i
]
->
nodes
,
0
,
u
,
sbi
)
{
fprintf
(
file
,
"insn num %d
\n
"
,
u
);
print_rtl_single
(
file
,
g
->
nodes
[
u
].
insn
);
}
}
fprintf
(
file
,
"
\n
"
);
}
/* Create an edge and initialize it with given values. */
/* Create an edge and initialize it with given values. */
static
ddg_edge_ptr
static
ddg_edge_ptr
create_ddg_edge
(
ddg_node_ptr
src
,
ddg_node_ptr
dest
,
create_ddg_edge
(
ddg_node_ptr
src
,
ddg_node_ptr
dest
,
...
@@ -846,6 +870,27 @@ order_sccs (ddg_all_sccs_ptr g)
...
@@ -846,6 +870,27 @@ order_sccs (ddg_all_sccs_ptr g)
(
int
(
*
)
(
const
void
*
,
const
void
*
))
compare_sccs
);
(
int
(
*
)
(
const
void
*
,
const
void
*
))
compare_sccs
);
}
}
/* Check that every node in SCCS belongs to exactly one strongly connected
component and that no element of SCCS is empty. */
static
void
check_sccs
(
ddg_all_sccs_ptr
sccs
,
int
num_nodes
)
{
int
i
=
0
;
sbitmap
tmp
=
sbitmap_alloc
(
num_nodes
);
sbitmap_zero
(
tmp
);
for
(
i
=
0
;
i
<
sccs
->
num_sccs
;
i
++
)
{
gcc_assert
(
!
sbitmap_empty_p
(
sccs
->
sccs
[
i
]
->
nodes
));
/* Verify that every node in sccs is in exactly one strongly
connected component. */
gcc_assert
(
!
sbitmap_any_common_bits
(
tmp
,
sccs
->
sccs
[
i
]
->
nodes
));
sbitmap_a_or_b
(
tmp
,
tmp
,
sccs
->
sccs
[
i
]
->
nodes
);
}
sbitmap_free
(
tmp
);
}
/* Perform the Strongly Connected Components decomposing algorithm on the
/* Perform the Strongly Connected Components decomposing algorithm on the
DDG and return DDG_ALL_SCCS structure that contains them. */
DDG and return DDG_ALL_SCCS structure that contains them. */
ddg_all_sccs_ptr
ddg_all_sccs_ptr
...
@@ -890,6 +935,9 @@ create_ddg_all_sccs (ddg_ptr g)
...
@@ -890,6 +935,9 @@ create_ddg_all_sccs (ddg_ptr g)
sbitmap_free
(
from
);
sbitmap_free
(
from
);
sbitmap_free
(
to
);
sbitmap_free
(
to
);
sbitmap_free
(
scc_nodes
);
sbitmap_free
(
scc_nodes
);
#ifdef ENABLE_CHECKING
check_sccs
(
sccs
,
num_nodes
);
#endif
return
sccs
;
return
sccs
;
}
}
...
...
gcc/ddg.h
View file @
8cec1624
...
@@ -171,6 +171,7 @@ void free_ddg (ddg_ptr);
...
@@ -171,6 +171,7 @@ void free_ddg (ddg_ptr);
void
print_ddg
(
FILE
*
,
ddg_ptr
);
void
print_ddg
(
FILE
*
,
ddg_ptr
);
void
vcg_print_ddg
(
FILE
*
,
ddg_ptr
);
void
vcg_print_ddg
(
FILE
*
,
ddg_ptr
);
void
print_ddg_edge
(
FILE
*
,
ddg_edge_ptr
);
void
print_ddg_edge
(
FILE
*
,
ddg_edge_ptr
);
void
print_sccs
(
FILE
*
,
ddg_all_sccs_ptr
,
ddg_ptr
);
ddg_node_ptr
get_node_of_insn
(
ddg_ptr
,
rtx
);
ddg_node_ptr
get_node_of_insn
(
ddg_ptr
,
rtx
);
...
...
gcc/modulo-sched.c
View file @
8cec1624
...
@@ -1648,6 +1648,9 @@ sms_order_nodes (ddg_ptr g, int mii, int * node_order)
...
@@ -1648,6 +1648,9 @@ sms_order_nodes (ddg_ptr g, int mii, int * node_order)
nopa
nops
=
calculate_order_params
(
g
,
mii
);
nopa
nops
=
calculate_order_params
(
g
,
mii
);
if
(
dump_file
)
print_sccs
(
dump_file
,
sccs
,
g
);
order_nodes_of_sccs
(
sccs
,
node_order
);
order_nodes_of_sccs
(
sccs
,
node_order
);
if
(
sccs
->
num_sccs
>
0
)
if
(
sccs
->
num_sccs
>
0
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment