Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • mesa mesa
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 3,047
    • Issues 3,047
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 990
    • Merge requests 990
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • MesaMesa
  • mesamesa
  • Merge requests
  • !5092

lima/ppir: use a ready list in node_to_instr

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Erico Nunes requested to merge enunes/mesa:lima-ppir-sched-readylist into master May 19, 2020
  • Overview 5
  • Commits 1
  • Pipelines 9
  • Changes 2

After the recent optimizations in ppir lowering that increase options for combining, node_to_instr now may have multiple options of nodes to insert and needs to decide which is better. For example if an instruction uses both a varying and a texture, there are two load varying nodes that can be inserted to the same instruction (ld_var and ld_coords). It is much more advantageous to pipeline the texture coords since that enables the increased precision path. However, with the current recursive expansion, this cannot be influenced.

This simple ready list implementation in node_to_instr allows it to choose the next ready node to expand based on a score priority, rather than relying on the random order coming from the recursive expansion.

Other than preferring nodes with pipeline output (which covers ld_coords vs ld_var), nodes using later slots in the pipeline are expanded first, allowing node_to_instr to make all of the earlier (pipelineable) nodes ready so they will be available in the ready list when picking nodes for the earlier slots.

Edited May 22, 2020 by Erico Nunes
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: lima-ppir-sched-readylist