Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
L
llvm-project
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 16
    • Issues 16
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Merge Requests 3
    • Merge Requests 3
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Metrics
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI/CD
    • Code Review
    • Repository
    • Value Stream
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Morello
  • llvm-project
  • Merge Requests
  • !55

Open
Created Mar 11, 2021 by Silviu Baranga@sbarangaOwner
  • Report abuse
Report abuse

[Morello] Optimize global addressing for purecap

  • Overview 0
  • Commits 4
  • Pipelines 12
  • Changes 18
  1. Enable global merging for Morello

Instead of replacing with global uses with the merged global emit aliases. A later pass will optimize these. Some notable changes to the globals merge pass:

  • We're attempting to pad globals to make capabilies to the emitted aliases representable. This doesn't do anything, since the maximum size of the merged global is 4096, but it's nice to have this in place.
  • We're replacing the old globals with aliases to the merged global. This keeps size information and we can consume it in future optimizations.
  • For purecap we merge BSS globals with non-BSS ones, which means globals that were in .bss now end up in .data. For purecap this is worth it as it's going to remove some loads/stores

AArch64SandboxGlobalsOpt also now processes aliases as well. The metadata format for determining the index of the capability table for a global has changed since global aliases cannot attach metadata.

  1. Optimize address generation for aliases. These can use the underlying object and further refine bounds using a bounds setting instruction. Loads/stores known to be safe can use the underlying object directly.

  2. Generate addresses of constants from PCC with and additional bounds setting instruction.

Edited Mar 24, 2021 by Silviu Baranga
Assignee
Assign to
Reviewer
Request review from
None
Milestone
None
Assign milestone
Time tracking
Source branch: merge-globals