BasicBlock Class

Definition

Line 7 of cmsxi/BasicBlock.cm

Constructors & Destructor

public nothrow BasicBlock(Function& function_, uint id_)

Member Functions

public nothrow void AddInstruction(Instruction* instruction, MDStructRef* metadata)
public nothrow void AddPredecessor(BasicBlock* predecessor)
public nothrow void ComputeLivenessAndNextUse()
public void GenerateCode(MachineCode& machineCode, CodeFormatter& formatter)
public nothrow const Pair<Liveness, Value*>* GetCurrentLivenessAndNextUse(Value* value)
public nothrow Instruction* GetLastInstruction() const
public nothrow Instruction* GetLeader() const
public inline nothrow uint Id() const
public nothrow List<UniquePtr<Instruction>>& Instructions()
public inline nothrow bool IsEmpty() const
public void MapInstructions(uint& nextIdNumber)
public nothrow String<char> Name() const
public inline nothrow List<BasicBlock*>& Predecessors()
public void Print(CodeFormatter& formatter, int stage)
public inline nothrow void SetEmpty(bool empty_)
public inline nothrow void SetId(uint id_)
public nothrow void SetValueLivenessAndNextUse(Value* value, Liveness liveness, Value* nextUse)
public void Validate()

Member Variables

private bool empty
public Function& function
private uint id
private List<UniquePtr<Instruction>> instructions
private bool livenessAndNextUseComputed
private HashMap<Value*, Pair<Liveness, Value*>, Hasher<Value*>, EqualTo<Value*>> livenessAndNextUseMap
private List<BasicBlock*> predecessors
public RegisterDescriptors registerDescriptors

Constructor& Destructor Details

BasicBlock Constructor

public nothrow BasicBlock(Function& function_, uint id_)

Definition
Line 9 of cmsxi/BasicBlock.cm


Member Function Details

AddInstruction Member Function

public nothrow void AddInstruction(Instruction* instruction, MDStructRef* metadata)

Definition
Line 12 of cmsxi/BasicBlock.cm


AddPredecessor Member Function

public nothrow void AddPredecessor(BasicBlock* predecessor)

Definition
Line 196 of cmsxi/BasicBlock.cm


ComputeLivenessAndNextUse Member Function

public nothrow void ComputeLivenessAndNextUse()

Definition
Line 204 of cmsxi/BasicBlock.cm


GenerateCode Member Function

public void GenerateCode(MachineCode& machineCode, CodeFormatter& formatter)

Definition
Line 242 of cmsxi/BasicBlock.cm


GetCurrentLivenessAndNextUse Member Function

public nothrow const Pair<Liveness, Value*>* GetCurrentLivenessAndNextUse(Value* value)

Definition
Line 222 of cmsxi/BasicBlock.cm


GetLastInstruction Member Function

public nothrow Instruction* GetLastInstruction()

Definition
Line 23 of cmsxi/BasicBlock.cm


GetLeader Member Function

public nothrow Instruction* GetLeader()

Definition
Line 19 of cmsxi/BasicBlock.cm


Id Member Function

public inline nothrow uint Id()

Definition
Line 272 of cmsxi/BasicBlock.cm


Instructions Member Function

public nothrow List<UniquePtr<Instruction>>& Instructions()

Definition
Line 34 of cmsxi/BasicBlock.cm


IsEmpty Member Function

public inline nothrow bool IsEmpty()

Definition
Line 256 of cmsxi/BasicBlock.cm


MapInstructions Member Function

public void MapInstructions(uint& nextIdNumber)

Definition
Line 38 of cmsxi/BasicBlock.cm


Name Member Function

public nothrow String<char> Name()

Definition
Line 188 of cmsxi/BasicBlock.cm


Predecessors Member Function

public inline nothrow List<BasicBlock*>& Predecessors()

Definition
Line 264 of cmsxi/BasicBlock.cm


Print Member Function

public void Print(CodeFormatter& formatter, int stage)

Definition
Line 121 of cmsxi/BasicBlock.cm


SetEmpty Member Function

public inline nothrow void SetEmpty(bool empty_)

Definition
Line 260 of cmsxi/BasicBlock.cm


SetId Member Function

public inline nothrow void SetId(uint id_)

Definition
Line 268 of cmsxi/BasicBlock.cm


SetValueLivenessAndNextUse Member Function

public nothrow void SetValueLivenessAndNextUse(Value* value, Liveness liveness, Value* nextUse)

Definition
Line 234 of cmsxi/BasicBlock.cm


Validate Member Function

public void Validate()

Definition
Line 62 of cmsxi/BasicBlock.cm