Joern RENNECKE wrote: > Kenneth Zadeck wrote: > >> >> >> You should do this starting from the dataflow branch. The version of >> if-cvt there works as I have mentioned in the previous mail and does not >> use propagate block at all. >> >> > if-conversion always joins blocks. But cross-jumping merges blocks or > partial blocks. > If the latter, both of the original blocks are split, and the botom > part of the blocks > becomes one merge block. You need to re-compute the live-at-end > information for > the upper parts of the original blocks, which become two separate BBs. > >> >> >> >> > Are you saying that this is a problem with my code or a problem with what you have to do? Updating the LR dataflow when splitting a basic block is generally pretty easy. You start from the end of the block and just interpret the uses and defs for each insn. The code in the new version of if-cvt actually does this where it replaces the old code that used to call propagate block.
kenny