Fixes #1300. Adding checks for bad CCP transitions and unsettled values
authorAlan Baker <alanbaker@google.com>
Wed, 14 Feb 2018 21:56:43 +0000 (16:56 -0500)
committerAlan Baker <alanbaker@google.com>
Mon, 19 Feb 2018 00:41:34 +0000 (19:41 -0500)
commitc3f34d8bf3532040592a8bbb7f8079bcb7ae4c6b
tree5ba912672dcff1889a6fddced2f62afee3341659
parente543b195dfe34ae99f9dec146cf8e17c2278e553
Fixes #1300. Adding checks for bad CCP transitions and unsettled values

* Now track propagation status and assert on bad statuses
 * Added helper methods to access instruction propagation status
* Modified the phi meet operator to properly reflect the paper it is
based on
* Modified SSA edge addition so that all edge are added, but only on
state changes
* Fixed a bug in instruction simulation where interesting conditional
branches would not mark the interesting edge as executed
 * Added a test to catch this bug
* Added an ostream operator for SSAPropagator::PropStatus
source/opt/ccp_pass.cpp
source/opt/propagator.cpp
source/opt/propagator.h
test/opt/ccp_test.cpp