Richard Biener wrote:
> On Mon, Dec 8, 2014 at 10:49 PM, Steve Ellcey <[email protected]> wrote:
> > expected? Should this test also check flag_thread_jumps? Or should
> > that be getting checked somewhere else?
>
> -fthread-jumps is an RTL optimization flag and ignored on GIMPLE.
Does it make sense to add a -f[no-]tree-thread-jumps to enable/disable the tree
jump threading? I could also add -f[no-]tree-fsm-thread-jumps. Opinions?
On the llvm test-suite, I have seen one ICE with my fsm jump-thread patch.
This patch fixes the problem:
diff --git a/gcc/tree-ssa-threadupdate.c b/gcc/tree-ssa-threadupdate.c
index 12f83ba..f8c736e 100644
--- a/gcc/tree-ssa-threadupdate.c
+++ b/gcc/tree-ssa-threadupdate.c
@@ -2564,6 +2564,7 @@ thread_through_all_blocks (bool may_peel_loop_headers)
FOR_EACH_LOOP (loop, LI_FROM_INNERMOST)
{
if (!loop->header
+ || !loop_latch_edge (loop)
|| !bitmap_bit_p (threaded_blocks, loop->header->index))
continue;
retval |= thread_through_loop_header (loop, may_peel_loop_headers);
Ok to commit after regstrap?
Thanks,
Sebastian