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
d6da226a
Commit
d6da226a
authored
Sep 22, 2016
by
Jan Hubicka
Committed by
Jan Hubicka
Sep 22, 2016
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* regcprop.c (copyprop_hardreg_forward_1): Remove noop moves.
From-SVN: r240365
parent
2dbe56bd
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
27 additions
and
1 deletions
+27
-1
gcc/ChangeLog
+4
-0
gcc/regcprop.c
+23
-1
No files found.
gcc/ChangeLog
View file @
d6da226a
2016-09-22 Jan Hubicka <hubicka@ucw.cz>
* regcprop.c (copyprop_hardreg_forward_1): Remove noop moves.
2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* emit-rtl.c (next_cc0_user): Make argument type rtx_insn *.
...
...
gcc/regcprop.c
View file @
d6da226a
...
...
@@ -771,6 +771,26 @@ copyprop_hardreg_forward_1 (basic_block bb, struct value_data *vd)
}
set
=
single_set
(
insn
);
/* Detect noop sets and remove them before processing side effects. */
if
(
set
&&
REG_P
(
SET_DEST
(
set
))
&&
REG_P
(
SET_SRC
(
set
)))
{
unsigned
int
regno
=
REGNO
(
SET_SRC
(
set
));
rtx
r1
=
find_oldest_value_reg
(
REGNO_REG_CLASS
(
regno
),
SET_DEST
(
set
),
vd
);
rtx
r2
=
find_oldest_value_reg
(
REGNO_REG_CLASS
(
regno
),
SET_SRC
(
set
),
vd
);
if
(
rtx_equal_p
(
r1
?
r1
:
SET_DEST
(
set
),
r2
?
r2
:
SET_SRC
(
set
)))
{
bool
last
=
insn
==
BB_END
(
bb
);
fprintf
(
stderr
,
"Bingo
\n
"
);
delete_insn
(
insn
);
if
(
last
)
break
;
continue
;
}
}
extract_constrain_insn
(
insn
);
preprocess_constraints
(
insn
);
const
operand_alternative
*
op_alt
=
which_op_alt
();
...
...
@@ -860,7 +880,9 @@ copyprop_hardreg_forward_1 (basic_block bb, struct value_data *vd)
register in the same class. */
if
(
REG_P
(
SET_DEST
(
set
)))
{
new_rtx
=
find_oldest_value_reg
(
REGNO_REG_CLASS
(
regno
),
src
,
vd
);
new_rtx
=
find_oldest_value_reg
(
REGNO_REG_CLASS
(
regno
),
src
,
vd
);
if
(
new_rtx
&&
validate_change
(
insn
,
&
SET_SRC
(
set
),
new_rtx
,
0
))
{
if
(
dump_file
)
...
...
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