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
05223046
Commit
05223046
authored
Oct 10, 2007
by
Revital Eres
Committed by
Revital Eres
Oct 10, 2007
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
SMS: Add dump info
From-SVN: r129200
parent
e14e932b
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
68 additions
and
13 deletions
+68
-13
gcc/ChangeLog
+7
-0
gcc/modulo-sched.c
+61
-13
No files found.
gcc/ChangeLog
View file @
05223046
2007
-
10
-
10
Revital
Eres
<
eres
@
il
.
ibm
.
com
>
*
modulo
-
sched
.
c
(
check_nodes_order
):
Dump
the
final
order
of
the
nodes
.
(
get_sched_window
):
Add
dump
info
.
(
calculate_order_params
):
Dump
order
params
of
the
nodes
.
2007
-
10
-
09
Kenneth
Zadeck
<
zadeck
@
naturalbridge
.
com
>
2007
-
10
-
09
Kenneth
Zadeck
<
zadeck
@
naturalbridge
.
com
>
PR
middle
-
end
/
33669
PR
middle
-
end
/
33669
gcc/modulo-sched.c
View file @
05223046
...
@@ -1331,21 +1331,27 @@ get_sched_window (partial_schedule_ptr ps, int *nodes_order, int i,
...
@@ -1331,21 +1331,27 @@ get_sched_window (partial_schedule_ptr ps, int *nodes_order, int i,
print_ddg_edge
(
dump_file
,
e
);
print_ddg_edge
(
dump_file
,
e
);
fprintf
(
dump_file
,
fprintf
(
dump_file
,
"
\n
Scheduling %d (%d) in psp_not_empty,"
"
\n
Scheduling %d (%d) in psp_not_empty,"
" checking
node
%d (%d): "
,
u_node
->
cuid
,
" checking
p
%d (%d): "
,
u_node
->
cuid
,
INSN_UID
(
u_node
->
insn
),
v_node
->
cuid
,
INSN_UID
INSN_UID
(
u_node
->
insn
),
v_node
->
cuid
,
INSN_UID
(
v_node
->
insn
));
(
v_node
->
insn
));
}
}
if
(
TEST_BIT
(
sched_nodes
,
v_node
->
cuid
))
if
(
TEST_BIT
(
sched_nodes
,
v_node
->
cuid
))
{
{
int
node_st
=
SCHED_TIME
(
v_node
)
int
p_st
=
SCHED_TIME
(
v_node
);
+
e
->
latency
-
(
e
->
distance
*
ii
);
early_start
=
MAX
(
early_start
,
node_st
);
early_start
=
MAX
(
early_start
,
p_st
+
e
->
latency
-
(
e
->
distance
*
ii
));
if
(
dump_file
)
fprintf
(
dump_file
,
"pred st = %d; early_start = %d; "
,
p_st
,
early_start
);
if
(
e
->
data_type
==
MEM_DEP
)
if
(
e
->
data_type
==
MEM_DEP
)
end
=
MIN
(
end
,
SCHED_TIME
(
v_node
)
+
ii
-
1
);
end
=
MIN
(
end
,
SCHED_TIME
(
v_node
)
+
ii
-
1
);
}
}
else
if
(
dump_file
)
fprintf
(
dump_file
,
"the node is not scheduled
\n
"
);
}
}
start
=
early_start
;
start
=
early_start
;
end
=
MIN
(
end
,
early_start
+
ii
);
end
=
MIN
(
end
,
early_start
+
ii
);
...
@@ -1372,18 +1378,21 @@ get_sched_window (partial_schedule_ptr ps, int *nodes_order, int i,
...
@@ -1372,18 +1378,21 @@ get_sched_window (partial_schedule_ptr ps, int *nodes_order, int i,
print_ddg_edge
(
dump_file
,
e
);
print_ddg_edge
(
dump_file
,
e
);
fprintf
(
dump_file
,
fprintf
(
dump_file
,
"
\n
Scheduling %d (%d) in pss_not_empty,"
"
\n
Scheduling %d (%d) in pss_not_empty,"
" checking
node
%d (%d): "
,
u_node
->
cuid
,
" checking
s
%d (%d): "
,
u_node
->
cuid
,
INSN_UID
(
u_node
->
insn
),
v_node
->
cuid
,
INSN_UID
INSN_UID
(
u_node
->
insn
),
v_node
->
cuid
,
INSN_UID
(
v_node
->
insn
));
(
v_node
->
insn
));
}
}
if
(
TEST_BIT
(
sched_nodes
,
v_node
->
cuid
))
if
(
TEST_BIT
(
sched_nodes
,
v_node
->
cuid
))
{
{
late_start
=
MIN
(
late_start
,
int
s_st
=
SCHED_TIME
(
v_node
);
SCHED_TIME
(
v_node
)
-
e
->
latency
+
(
e
->
distance
*
ii
));
late_start
=
MIN
(
late_start
,
if
(
dump_file
)
s_st
-
e
->
latency
+
(
e
->
distance
*
ii
));
fprintf
(
dump_file
,
"late_start = %d;"
,
late_start
);
if
(
dump_file
)
fprintf
(
dump_file
,
"succ st = %d; late_start = %d;"
,
s_st
,
late_start
);
if
(
e
->
data_type
==
MEM_DEP
)
if
(
e
->
data_type
==
MEM_DEP
)
end
=
MAX
(
end
,
SCHED_TIME
(
v_node
)
-
ii
+
1
);
end
=
MAX
(
end
,
SCHED_TIME
(
v_node
)
-
ii
+
1
);
...
@@ -1430,12 +1439,22 @@ get_sched_window (partial_schedule_ptr ps, int *nodes_order, int i,
...
@@ -1430,12 +1439,22 @@ get_sched_window (partial_schedule_ptr ps, int *nodes_order, int i,
if
(
TEST_BIT
(
sched_nodes
,
v_node
->
cuid
))
if
(
TEST_BIT
(
sched_nodes
,
v_node
->
cuid
))
{
{
int
p_st
=
SCHED_TIME
(
v_node
);
early_start
=
MAX
(
early_start
,
early_start
=
MAX
(
early_start
,
SCHED_TIME
(
v_node
)
+
e
->
latency
p_st
+
e
->
latency
-
(
e
->
distance
*
ii
));
-
(
e
->
distance
*
ii
));
if
(
dump_file
)
fprintf
(
dump_file
,
"pred st = %d; early_start = %d;"
,
p_st
,
early_start
);
if
(
e
->
data_type
==
MEM_DEP
)
if
(
e
->
data_type
==
MEM_DEP
)
end
=
MIN
(
end
,
SCHED_TIME
(
v_node
)
+
ii
-
1
);
end
=
MIN
(
end
,
SCHED_TIME
(
v_node
)
+
ii
-
1
);
}
}
else
if
(
dump_file
)
fprintf
(
dump_file
,
"the node is not scheduled
\n
"
);
}
}
for
(
e
=
u_node
->
out
;
e
!=
0
;
e
=
e
->
next_out
)
for
(
e
=
u_node
->
out
;
e
!=
0
;
e
=
e
->
next_out
)
{
{
...
@@ -1454,12 +1473,22 @@ get_sched_window (partial_schedule_ptr ps, int *nodes_order, int i,
...
@@ -1454,12 +1473,22 @@ get_sched_window (partial_schedule_ptr ps, int *nodes_order, int i,
if
(
TEST_BIT
(
sched_nodes
,
v_node
->
cuid
))
if
(
TEST_BIT
(
sched_nodes
,
v_node
->
cuid
))
{
{
int
s_st
=
SCHED_TIME
(
v_node
);
late_start
=
MIN
(
late_start
,
late_start
=
MIN
(
late_start
,
SCHED_TIME
(
v_node
)
-
e
->
latency
s_st
-
e
->
latency
+
(
e
->
distance
*
ii
));
+
(
e
->
distance
*
ii
));
if
(
dump_file
)
fprintf
(
dump_file
,
"succ st = %d; late_start = %d;"
,
s_st
,
late_start
);
if
(
e
->
data_type
==
MEM_DEP
)
if
(
e
->
data_type
==
MEM_DEP
)
start
=
MAX
(
start
,
SCHED_TIME
(
v_node
)
-
ii
+
1
);
start
=
MAX
(
start
,
SCHED_TIME
(
v_node
)
-
ii
+
1
);
}
}
else
if
(
dump_file
)
fprintf
(
dump_file
,
"the node is not scheduled
\n
"
);
}
}
start
=
MAX
(
start
,
early_start
);
start
=
MAX
(
start
,
early_start
);
end
=
MIN
(
end
,
MIN
(
early_start
+
ii
,
late_start
+
1
));
end
=
MIN
(
end
,
MIN
(
early_start
+
ii
,
late_start
+
1
));
...
@@ -1845,15 +1874,23 @@ check_nodes_order (int *node_order, int num_nodes)
...
@@ -1845,15 +1874,23 @@ check_nodes_order (int *node_order, int num_nodes)
sbitmap_zero
(
tmp
);
sbitmap_zero
(
tmp
);
if
(
dump_file
)
fprintf
(
dump_file
,
"SMS final nodes order:
\n
"
);
for
(
i
=
0
;
i
<
num_nodes
;
i
++
)
for
(
i
=
0
;
i
<
num_nodes
;
i
++
)
{
{
int
u
=
node_order
[
i
];
int
u
=
node_order
[
i
];
if
(
dump_file
)
fprintf
(
dump_file
,
"%d "
,
u
);
gcc_assert
(
u
<
num_nodes
&&
u
>=
0
&&
!
TEST_BIT
(
tmp
,
u
));
gcc_assert
(
u
<
num_nodes
&&
u
>=
0
&&
!
TEST_BIT
(
tmp
,
u
));
SET_BIT
(
tmp
,
u
);
SET_BIT
(
tmp
,
u
);
}
}
if
(
dump_file
)
fprintf
(
dump_file
,
"
\n
"
);
sbitmap_free
(
tmp
);
sbitmap_free
(
tmp
);
}
}
...
@@ -1993,6 +2030,17 @@ calculate_order_params (ddg_ptr g, int mii ATTRIBUTE_UNUSED)
...
@@ -1993,6 +2030,17 @@ calculate_order_params (ddg_ptr g, int mii ATTRIBUTE_UNUSED)
HEIGHT
(
e
->
dest
)
+
e
->
latency
);
HEIGHT
(
e
->
dest
)
+
e
->
latency
);
}
}
}
}
if
(
dump_file
)
{
fprintf
(
dump_file
,
"
\n
Order params
\n
"
);
for
(
u
=
0
;
u
<
num_nodes
;
u
++
)
{
ddg_node_ptr
u_node
=
&
g
->
nodes
[
u
];
fprintf
(
dump_file
,
"node %d, ASAP: %d, ALAP: %d, HEIGHT: %d
\n
"
,
u
,
ASAP
(
u_node
),
ALAP
(
u_node
),
HEIGHT
(
u_node
));
}
}
return
node_order_params_arr
;
return
node_order_params_arr
;
}
}
...
...
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