Skip to content
  • Jakob Stoklund Olesen's avatar
    Add higher-level API for dealing with bundled MachineInstrs. · fead62d4
    Jakob Stoklund Olesen authored
    This is still a work in progress. The purpose is to make bundling and
    unbundling operations explicit, and to catch errors where bundles are
    broken or created inadvertently.
    
    The old IsInsideBundle flag is replaced by two MI flags: BundledPred
    which has the same meaning as IsInsideBundle, and BundledSucc which is
    set on instructions that are bundled with a successor. Having two flags
    provdes redundancy to detect when a bundle is inadvertently torn by a
    splice() or insert(), and it makes it possible to write bundle iterators
    that don't need to peek at adjacent instructions.
    
    The new flags can't be manipulated directly (once setIsInsideBundle is
    gone). Instead there are MI functions to make and break bundle bonds.
    
    The setIsInsideBundle function will be removed in a future commit. It
    should be replaced by bundleWithPred().
    
    llvm-svn: 169583
    fead62d4
Loading