[PATCH] [Jump-Threading] Fixed jump threading hang issues (PR15386, PR15851)

Dinesh Dwivedi dinesh.d at samsung.com
Tue Jun 10 04:53:44 PDT 2014


Here are few observations I came across during debugging:
If any of the existing BB in the function is updated, it will be added in UpdatedBB,
if not already exist. For this new XXX.thread blocks are not considered for this
iteration.

For next iteration, all existing BB and new XXX.thread blocks are considered and if
any of the block is updated, it will get added to UpdatedBB.

Condition I have added to break, will be true if none of the existing BBs are updated,
which were not updated in previous passes.

So until, passes are threading some new path, iterations will go on and will break only
if already threaded paths are re-threaded and no new threading is introduced.

http://reviews.llvm.org/D3991






More information about the llvm-commits mailing list