shader: Inline common IR::Block methods
This commit is contained in:
		@@ -69,24 +69,12 @@ u32 Block::LocationEnd() const noexcept {
 | 
			
		||||
    return location_end;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Block::InstructionList& Block::Instructions() noexcept {
 | 
			
		||||
    return instructions;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const Block::InstructionList& Block::Instructions() const noexcept {
 | 
			
		||||
    return instructions;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Block::AddImmediatePredecessor(Block* block) {
 | 
			
		||||
    if (std::ranges::find(imm_predecessors, block) == imm_predecessors.end()) {
 | 
			
		||||
        imm_predecessors.push_back(block);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
std::span<IR::Block* const> Block::ImmediatePredecessors() const noexcept {
 | 
			
		||||
    return imm_predecessors;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static std::string BlockToIndex(const std::map<const Block*, size_t>& block_to_index,
 | 
			
		||||
                                Block* block) {
 | 
			
		||||
    if (const auto it{block_to_index.find(block)}; it != block_to_index.end()) {
 | 
			
		||||
 
 | 
			
		||||
@@ -59,15 +59,22 @@ public:
 | 
			
		||||
    /// Gets the end location for this basic block.
 | 
			
		||||
    [[nodiscard]] u32 LocationEnd() const noexcept;
 | 
			
		||||
 | 
			
		||||
    /// Gets a mutable reference to the instruction list for this basic block.
 | 
			
		||||
    [[nodiscard]] InstructionList& Instructions() noexcept;
 | 
			
		||||
    /// Gets an immutable reference to the instruction list for this basic block.
 | 
			
		||||
    [[nodiscard]] const InstructionList& Instructions() const noexcept;
 | 
			
		||||
 | 
			
		||||
    /// Adds a new immediate predecessor to this basic block.
 | 
			
		||||
    void AddImmediatePredecessor(Block* block);
 | 
			
		||||
 | 
			
		||||
    /// Gets a mutable reference to the instruction list for this basic block.
 | 
			
		||||
    [[nodiscard]] InstructionList& Instructions() noexcept {
 | 
			
		||||
        return instructions;
 | 
			
		||||
    }
 | 
			
		||||
    /// Gets an immutable reference to the instruction list for this basic block.
 | 
			
		||||
    [[nodiscard]] const InstructionList& Instructions() const noexcept {
 | 
			
		||||
        return instructions;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /// Gets an immutable span to the immediate predecessors.
 | 
			
		||||
    [[nodiscard]] std::span<Block* const> ImmediatePredecessors() const noexcept;
 | 
			
		||||
    [[nodiscard]] std::span<Block* const> ImmediatePredecessors() const noexcept {
 | 
			
		||||
        return imm_predecessors;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /// Intrusively store the host definition of this instruction.
 | 
			
		||||
    template <typename DefinitionType>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user