This preview shows pages 1–3. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: new branch added to end of homeBB, that tests if flag=1 and branches to redoBB if true, and restBB if false redoBB Place copy of hoisted LD, and copy of any other hoisted invariant instructions that directly or indirectly use the result of the LD. Note its important to populate this list correctly. Look at the set of instrs that are hoisted to identify those that became invariant because of the LD by examining the use lists Note - invariant uses of the LD will automatically get hoisted by LICM, you dont need to do anything to make this happen Note2 even if these uses that become invariant occur in other BBs, you can redo them all in redoBB (think about this one!) Clear flag at the end of redoBB Preheader Set all flags to 0 at end of preheader. Note, each LD that you hoist should have its own flag variable...
View Full Document
- Fall '08