llvm-6502/lib
Jakob Stoklund Olesen 9f4692d295 Tighten up the erase/remove API for bundled instructions.
Most code is oblivious to bundles and uses the MBB::iterator which only
visits whole bundles. MBB::erase() operates on whole bundles at a time
as before.

MBB::remove() now refuses to remove bundled instructions. It is not safe
to remove all instructions in a bundle without deleting them since there
is no way of returning pointers to all the removed instructions.

MBB::remove_instr() and MBB::erase_instr() will now update bundle flags
correctly, lifting individual instructions out of bundles while leaving
the remaining bundle intact.

The MachineInstr convenience functions are updated so

  eraseFromParent() erases a whole bundle as before
  eraseFromBundle() erases a single instruction, leaving the rest of its bundle.
  removeFromParent() refuses to operate on bundled instructions, and
  removeFromBundle() lifts a single instruction out of its bundle.

These functions will no longer accidentally split or coalesce bundles -
bundle flags are updated to preserve the existing bundling, and explicit
bundleWith* / unbundleFrom* functions should be used to change the
instruction bundling.

This API update is still a work in progress. I am going to update APIs
first so they maintain bundle flags automatically when possible. Then
I'll add stricter verification of the bundle flags.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170384 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-17 23:55:38 +00:00
..
Analysis
Archive
AsmParser
Bitcode
CodeGen Tighten up the erase/remove API for bundled instructions. 2012-12-17 23:55:38 +00:00
DebugInfo
ExecutionEngine Query section for whether it should be executable. 2012-12-17 17:59:35 +00:00
Linker
MC EmitDebugLabel should by default be the same as EmitLabel everywhere. 2012-12-17 23:41:45 +00:00
Object Teach MachO which sections contain code 2012-12-17 17:59:32 +00:00
Option
Support
TableGen
Target [arm fast-isel] Minor cleanup. No functional change intended. 2012-12-17 22:35:29 +00:00
Transforms Fix another SROA crasher, PR14601. 2012-12-17 18:48:07 +00:00
VMCore Removed trailing whitespace 2012-12-17 20:37:55 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile