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
f9df6f16
Commit
f9df6f16
authored
Mar 05, 2012
by
Jakub Jelinek
Committed by
Jakub Jelinek
Mar 05, 2012
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* cfgrtl.c (cfg_layout_merge_blocks): Cleanup.
From-SVN: r184925
parent
45c0175b
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
18 additions
and
25 deletions
+18
-25
gcc/ChangeLog
+4
-0
gcc/cfgrtl.c
+14
-25
No files found.
gcc/ChangeLog
View file @
f9df6f16
2012-03-05 Jakub Jelinek <jakub@redhat.com>
* cfgrtl.c (cfg_layout_merge_blocks): Cleanup.
2012-03-05 Richard Guenther <rguenther@suse.de>
* tree.c (integer_zerop): Handle VECTOR_CSTs.
...
...
gcc/cfgrtl.c
View file @
f9df6f16
...
...
@@ -2818,6 +2818,7 @@ static void
cfg_layout_merge_blocks
(
basic_block
a
,
basic_block
b
)
{
bool
forwarder_p
=
(
b
->
flags
&
BB_FORWARDER_BLOCK
)
!=
0
;
rtx
insn
;
gcc_checking_assert
(
cfg_layout_can_merge_blocks_p
(
a
,
b
));
...
...
@@ -2883,40 +2884,28 @@ cfg_layout_merge_blocks (basic_block a, basic_block b)
/* In the case basic blocks are not adjacent, move them around. */
if
(
NEXT_INSN
(
BB_END
(
a
))
!=
BB_HEAD
(
b
))
{
rtx
first
=
unlink_insn_chain
(
BB_HEAD
(
b
),
BB_END
(
b
));
emit_insn_after_noloc
(
first
,
BB_END
(
a
),
a
);
/* Skip possible DELETED_LABEL insn. */
if
(
!
NOTE_INSN_BASIC_BLOCK_P
(
first
))
first
=
NEXT_INSN
(
first
);
gcc_assert
(
NOTE_INSN_BASIC_BLOCK_P
(
first
));
BB_HEAD
(
b
)
=
NULL
;
/* emit_insn_after_noloc doesn't call df_insn_change_bb.
We need to explicitly call. */
update_bb_for_insn_chain
(
NEXT_INSN
(
first
),
BB_END
(
b
),
a
);
insn
=
unlink_insn_chain
(
BB_HEAD
(
b
),
BB_END
(
b
));
delete_insn
(
first
);
emit_insn_after_noloc
(
insn
,
BB_END
(
a
),
a
);
}
/* Otherwise just re-associate the instructions. */
else
{
rtx
insn
;
update_bb_for_insn_chain
(
BB_HEAD
(
b
),
BB_END
(
b
),
a
);
insn
=
BB_HEAD
(
b
);
/* Skip possible DELETED_LABEL insn. */
if
(
!
NOTE_INSN_BASIC_BLOCK_P
(
insn
))
insn
=
NEXT_INSN
(
insn
);
gcc_assert
(
NOTE_INSN_BASIC_BLOCK_P
(
insn
));
BB_HEAD
(
b
)
=
NULL
;
BB_END
(
a
)
=
BB_END
(
b
);
delete_insn
(
insn
);
}
/* emit_insn_after_noloc doesn't call df_insn_change_bb.
We need to explicitly call. */
update_bb_for_insn_chain
(
insn
,
BB_END
(
b
),
a
);
/* Skip possible DELETED_LABEL insn. */
if
(
!
NOTE_INSN_BASIC_BLOCK_P
(
insn
))
insn
=
NEXT_INSN
(
insn
);
gcc_assert
(
NOTE_INSN_BASIC_BLOCK_P
(
insn
));
BB_HEAD
(
b
)
=
NULL
;
delete_insn
(
insn
);
df_bb_delete
(
b
->
index
);
/* Possible tablejumps and barriers should appear after the block. */
...
...
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