Skip to content
  • Dan Gohman's avatar
    Improve MachineMemOperand handling. · 48b185d6
    Dan Gohman authored
     - Allocate MachineMemOperands and MachineMemOperand lists in MachineFunctions.
       This eliminates MachineInstr's std::list member and allows the data to be
       created by isel and live for the remainder of codegen, avoiding a lot of
       copying and unnecessary translation. This also shrinks MemSDNode.
     - Delete MemOperandSDNode. Introduce MachineSDNode which has dedicated
       fields for MachineMemOperands.
     - Change MemSDNode to have a MachineMemOperand member instead of its own
       fields with the same information. This introduces some redundancy, but
       it's more consistent with what MachineInstr will eventually want.
     - Ignore alignment when searching for redundant loads for CSE, but remember
       the greatest alignment.
    
    Target-specific code which previously used MemOperandSDNodes with generic
    SDNodes now use MemIntrinsicSDNodes, with opcodes in a designated range
    so that the SelectionDAG framework knows that MachineMemOperand information
    is available.
    
    llvm-svn: 82794
    48b185d6
Loading