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
c8b64bf2
Commit
c8b64bf2
authored
Jun 30, 2002
by
Alan Modra
Committed by
Alan Modra
Jun 30, 2002
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* unroll.c (loop_iterations): Handle EQ loops.
From-SVN: r55111
parent
35aba846
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
41 additions
and
6 deletions
+41
-6
gcc/ChangeLog
+4
-0
gcc/unroll.c
+37
-6
No files found.
gcc/ChangeLog
View file @
c8b64bf2
2002-06-30 Alan Modra <amodra@bigpond.net.au>
* unroll.c (loop_iterations): Handle EQ loops.
2002-06-29 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.md (ctrdi): Allocate pseudo for FPR
...
...
gcc/unroll.c
View file @
c8b64bf2
...
...
@@ -3941,12 +3941,6 @@ loop_iterations (loop)
}
return
0
;
}
else
if
(
comparison_code
==
EQ
)
{
if
(
loop_dump_stream
)
fprintf
(
loop_dump_stream
,
"Loop iterations: EQ comparison loop.
\n
"
);
return
0
;
}
else
if
(
GET_CODE
(
final_value
)
!=
CONST_INT
)
{
if
(
loop_dump_stream
)
...
...
@@ -3958,6 +3952,43 @@ loop_iterations (loop)
}
return
0
;
}
else
if
(
comparison_code
==
EQ
)
{
rtx
inc_once
;
if
(
loop_dump_stream
)
fprintf
(
loop_dump_stream
,
"Loop iterations: EQ comparison loop.
\n
"
);
inc_once
=
gen_int_mode
(
INTVAL
(
initial_value
)
+
INTVAL
(
increment
),
GET_MODE
(
iteration_var
));
if
(
inc_once
==
final_value
)
{
/* The iterator value once through the loop is equal to the
comparision value. Either we have an infinite loop, or
we'll loop twice. */
if
(
increment
==
const0_rtx
)
return
0
;
loop_info
->
n_iterations
=
2
;
}
else
loop_info
->
n_iterations
=
1
;
if
(
GET_CODE
(
loop_info
->
initial_value
)
==
CONST_INT
)
loop_info
->
final_value
=
gen_int_mode
((
INTVAL
(
loop_info
->
initial_value
)
+
loop_info
->
n_iterations
*
INTVAL
(
increment
)),
GET_MODE
(
iteration_var
));
else
loop_info
->
final_value
=
plus_constant
(
loop_info
->
initial_value
,
loop_info
->
n_iterations
*
INTVAL
(
increment
));
loop_info
->
final_equiv_value
=
gen_int_mode
((
INTVAL
(
initial_value
)
+
loop_info
->
n_iterations
*
INTVAL
(
increment
)),
GET_MODE
(
iteration_var
));
return
loop_info
->
n_iterations
;
}
/* Final_larger is 1 if final larger, 0 if they are equal, otherwise -1. */
if
(
unsigned_p
)
...
...
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