Insert diverging jump alap in nvptx_single
2017-07-17 Tom de Vries <tom@codesourcery.com> PR target/81069 * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late as possible. From-SVN: r250256
This commit is contained in:
parent
42ec024baa
commit
ed9091b270
2 changed files with 25 additions and 3 deletions
|
@ -1,3 +1,9 @@
|
|||
2017-07-17 Tom de Vries <tom@codesourcery.com>
|
||||
|
||||
PR target/81069
|
||||
* config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late
|
||||
as possible.
|
||||
|
||||
2017-07-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
||||
|
||||
* gcc/config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
|
||||
|
|
|
@ -3886,9 +3886,25 @@ nvptx_single (unsigned mask, basic_block from, basic_block to)
|
|||
rtx_insn *tail = BB_END (to);
|
||||
unsigned skip_mask = mask;
|
||||
|
||||
/* Find first insn of from block */
|
||||
while (head != BB_END (from) && !INSN_P (head))
|
||||
head = NEXT_INSN (head);
|
||||
while (true)
|
||||
{
|
||||
/* Find first insn of from block. */
|
||||
while (head != BB_END (from) && !INSN_P (head))
|
||||
head = NEXT_INSN (head);
|
||||
|
||||
if (from == to)
|
||||
break;
|
||||
|
||||
if (!(JUMP_P (head) && single_succ_p (from)))
|
||||
break;
|
||||
|
||||
basic_block jump_target = single_succ (from);
|
||||
if (!single_pred_p (jump_target))
|
||||
break;
|
||||
|
||||
from = jump_target;
|
||||
head = BB_HEAD (from);
|
||||
}
|
||||
|
||||
/* Find last insn of to block */
|
||||
rtx_insn *limit = from == to ? head : BB_HEAD (to);
|
||||
|
|
Loading…
Add table
Reference in a new issue