Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • mesa mesa
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 3.2k
    • Issues 3.2k
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 1k
    • Merge requests 1k
  • 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
  • !3385

aco: rework lowering to CSSA

  • Review changes

  • Download
  • Patches
  • Plain diff
Merged Daniel Schürmann requested to merge daniel-schuermann/mesa:aco_cssa into master Jan 14, 2020
  • Overview 30
  • Commits 3
  • Pipelines 14
  • Changes 3

The lowering to CSSA has not been exhaustive and could miss out on some interferences between phi-operands. For example, this case was not considered:

a = ...
if () {
  b = ..
} else {
  c = ..
}
x = phi(a, c)
y = phi(b, a)

Some of these cases would need a full live variable analysis to find interfering operands, like

a = ...
if () {
} else {
  b = ...
  use a
}
phi = (a,b)

For this reason, the new approach emits parallelcopies for all operands which might interfere, i.e. if any operand's definition point dominates the definition point of a different operand. To reduce the negative impact of the additional parallelcopies, we try to coalesce them during register allocation.

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: aco_cssa