Commits

Xin Tong committed be793d26eb0
Remove last bit of retain release code motion in SILCodeMotion. All these code are replaced by retain release code motion. This code has been disabled for sometime now. This should bring the retain release code motion into a close. The retain release code motion pipeline looks like this. There could be some minor cleanups after this though. 1. We perform a global data flow for retain release code motion in RRCM (RetainReleaseCodeMotion) 2. We perform a local form of retain release code motion in SILCodeMotion. This is more for cases which can not be handled in RRCM. e.g. sinking into a switch is more efficiently done in a local form, the retain is not needed on the None block. Release on SILArgument needs to be split to incoming values, this can not be done in RRCM and other cases. 3. We do not perform code motion in ASO, only elimination which are very important. Some modifications to test cases, they look different, but functionally the same. RRCM has this canonicalization effect, i.e. it uses the rc root, instead of the SSA value the retain/release is currently using. As a result some test cases need to be modified. I also removed some test cases that do not make sense anymore and lot of duplicate test cases between earlycodemotion.sil and latecodemotion.sil. These tests cases only have retains and should be used to test early code motion.