Changeset View
Changeset View
Standalone View
Standalone View
llvm/trunk/include/llvm/CodeGen/LiveRegMatrix.h
Show First 20 Lines • Show All 101 Lines • ▼ Show 20 Lines | public: | ||||
}; | }; | ||||
/// Check for interference before assigning VirtReg to PhysReg. | /// Check for interference before assigning VirtReg to PhysReg. | ||||
/// If this function returns IK_Free, it is legal to assign(VirtReg, PhysReg). | /// If this function returns IK_Free, it is legal to assign(VirtReg, PhysReg). | ||||
/// When there is more than one kind of interference, the InterferenceKind | /// When there is more than one kind of interference, the InterferenceKind | ||||
/// with the highest enum value is returned. | /// with the highest enum value is returned. | ||||
InterferenceKind checkInterference(LiveInterval &VirtReg, unsigned PhysReg); | InterferenceKind checkInterference(LiveInterval &VirtReg, unsigned PhysReg); | ||||
/// Check for interference in the segment [Start, End) that may prevent | |||||
/// assignment to PhysReg. If this function returns true, there is | |||||
/// interference in the segment [Start, End) of some other interval already | |||||
/// assigned to PhysReg. If this function returns false, PhysReg is free at | |||||
/// the segment [Start, End). | |||||
bool checkInterference(SlotIndex Start, SlotIndex End, unsigned PhysReg); | |||||
/// Assign VirtReg to PhysReg. | /// Assign VirtReg to PhysReg. | ||||
/// This will mark VirtReg's live range as occupied in the LiveRegMatrix and | /// This will mark VirtReg's live range as occupied in the LiveRegMatrix and | ||||
/// update VirtRegMap. The live range is expected to be available in PhysReg. | /// update VirtRegMap. The live range is expected to be available in PhysReg. | ||||
void assign(LiveInterval &VirtReg, unsigned PhysReg); | void assign(LiveInterval &VirtReg, unsigned PhysReg); | ||||
/// Unassign VirtReg from its PhysReg. | /// Unassign VirtReg from its PhysReg. | ||||
/// Assuming that VirtReg was previously assigned to a PhysReg, this undoes | /// Assuming that VirtReg was previously assigned to a PhysReg, this undoes | ||||
/// the assignment and updates VirtRegMap accordingly. | /// the assignment and updates VirtRegMap accordingly. | ||||
Show All 36 Lines |