Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

compiler metrics #425

Merged
merged 72 commits into from
Aug 16, 2024
Merged

compiler metrics #425

merged 72 commits into from
Aug 16, 2024

Commits on May 3, 2022

  1. Configuration menu
    Copy the full SHA
    c821320 View commit details
    Browse the repository at this point in the history

Commits on May 4, 2022

  1. Configuration menu
    Copy the full SHA
    34513c0 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    da28f4a View commit details
    Browse the repository at this point in the history

Commits on May 10, 2022

  1. Configuration menu
    Copy the full SHA
    143d485 View commit details
    Browse the repository at this point in the history

Commits on May 16, 2022

  1. Configuration menu
    Copy the full SHA
    9720664 View commit details
    Browse the repository at this point in the history

Commits on Jun 14, 2022

  1. Configuration menu
    Copy the full SHA
    d157885 View commit details
    Browse the repository at this point in the history

Commits on Jun 21, 2022

  1. Configuration menu
    Copy the full SHA
    803a137 View commit details
    Browse the repository at this point in the history

Commits on Jul 12, 2022

  1. fix LowerPipeline.v

    pratapsingh1729 committed Jul 12, 2022
    Configuration menu
    Copy the full SHA
    276bb7b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    db9c19b View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    7779d35 View commit details
    Browse the repository at this point in the history

Commits on Jul 20, 2022

  1. Configuration menu
    Copy the full SHA
    6670dcd View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    7d1d671 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    67d485f View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    cdbdbc0 View commit details
    Browse the repository at this point in the history
  5. cleaning up

    pratapsingh1729 committed Jul 20, 2022
    Configuration menu
    Copy the full SHA
    402f67f View commit details
    Browse the repository at this point in the history
  6. update submodules

    pratapsingh1729 committed Jul 20, 2022
    Configuration menu
    Copy the full SHA
    ca1bd2a View commit details
    Browse the repository at this point in the history
  7. fix merge issues

    pratapsingh1729 committed Jul 20, 2022
    Configuration menu
    Copy the full SHA
    f8af06b View commit details
    Browse the repository at this point in the history

Commits on Jul 21, 2022

  1. Configuration menu
    Copy the full SHA
    8329197 View commit details
    Browse the repository at this point in the history

Commits on Aug 11, 2022

  1. Configuration menu
    Copy the full SHA
    24eb5f5 View commit details
    Browse the repository at this point in the history

Commits on Jan 24, 2024

  1. Configuration menu
    Copy the full SHA
    6bd3c05 View commit details
    Browse the repository at this point in the history
  2. sorry to leave you with this andy

    nathan-sheffield authored and tckmn committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    9a0f6fd View commit details
    Browse the repository at this point in the history

Commits on Jan 27, 2024

  1. Recover ipow metrics proof

    tckmn committed Jan 27, 2024
    Configuration menu
    Copy the full SHA
    55d0f22 View commit details
    Browse the repository at this point in the history

Commits on Apr 4, 2024

  1. Configuration menu
    Copy the full SHA
    6c4b51f View commit details
    Browse the repository at this point in the history
  2. fix bsearch proof

    tckmn committed Apr 4, 2024
    Configuration menu
    Copy the full SHA
    387f09c View commit details
    Browse the repository at this point in the history
  3. simplify ipow metrics proof

    tckmn committed Apr 4, 2024
    Configuration menu
    Copy the full SHA
    0fff400 View commit details
    Browse the repository at this point in the history

Commits on Apr 18, 2024

  1. Merge remote-tracking branch 'pratap/regalloc-metrics' into compilerm…

    …etrics
    
    Conflicts:
    	compiler/src/compiler/FlatImp.v
    	compiler/src/compiler/FlatToRiscvMetric.v
    	compiler/src/compiler/FlattenExpr.v
    	compiler/src/compiler/RegAlloc.v
    	compiler/src/compiler/Spilling.v
    tckmn committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    6760654 View commit details
    Browse the repository at this point in the history

Commits on Apr 25, 2024

  1. fix cost_SOp

    side effects:
    - breaks useimmediate
    - fixes spilling
    tckmn committed Apr 25, 2024
    Configuration menu
    Copy the full SHA
    b16c3a6 View commit details
    Browse the repository at this point in the history

Commits on Jun 7, 2024

  1. utility functions

    it seems i am trying to do too many things at once so i am committing
    the shared things so that i do not have to worry about missing
    dependencies due to commit order
    tckmn committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    b433c2f View commit details
    Browse the repository at this point in the history

Commits on Jun 10, 2024

  1. Parametrize FlatImp.exec by compiler phase

    The spilling phase adds some boilerplate inside functions and around
    function calls, so we need to account for it by making things
    artificially more expensive before the spilling phase.
    
    In an effort to avoid monolithic commits, this is a partial commit, so
    the code definitely doesn't compile in the current state since lots of
    things changed as a side effect.
    
    There are a few comments that say "cost_something constraint:", which
    document the various constraints on the magic numbers chosen as upper
    bounds for the costs (100, 95, 50). These should probably change to
    better numbers at some point.
    tckmn committed Jun 10, 2024
    Configuration menu
    Copy the full SHA
    bcd6714 View commit details
    Browse the repository at this point in the history
  2. Incorporate metrics into compiler pipeline proofs

    The pipeline now knows that metrics are preserved throughout.
    
    Many further changes are needed in RegAlloc.v and UseImmediate.v, so
    changes to theorems in those files are not included in this commit (and
    it will therefore not compile by itself as a result).
    tckmn committed Jun 10, 2024
    Configuration menu
    Copy the full SHA
    68059d6 View commit details
    Browse the repository at this point in the history
  3. Fix admits in RegAlloc step

    This is now 2/5 compiler stages fully verified with metrics.
    tckmn committed Jun 10, 2024
    Configuration menu
    Copy the full SHA
    86a0f8a View commit details
    Browse the repository at this point in the history
  4. Move cost_SStackalloc into postcondition

    It's nicer to work with this way, since all the exec judgments have the
    same starting metrics then.
    tckmn committed Jun 10, 2024
    Configuration menu
    Copy the full SHA
    568b87d View commit details
    Browse the repository at this point in the history
  5. Fixed UseImmediate proof

    Largely rewritten from scratch except for the SSeq part. There are now
    3/5 compiler phases fully verified with metrics!
    tckmn committed Jun 10, 2024
    Configuration menu
    Copy the full SHA
    56a2834 View commit details
    Browse the repository at this point in the history
  6. Merge remote-tracking branch 'origin/master' into compilermetrics

    A new compiler stage dead code elimination was added. There were minor
    changes in the stage itself due to other updates, and the compiler stage
    was commented because the proof is not yet metrics-aware.
    tckmn committed Jun 10, 2024
    Configuration menu
    Copy the full SHA
    6558c61 View commit details
    Browse the repository at this point in the history

Commits on Jun 11, 2024

  1. Incorporate metrics into DCE

    Also introduce MetricTactics, which I expect will be very useful
    elsewhere.
    tckmn committed Jun 11, 2024
    Configuration menu
    Copy the full SHA
    39ff02b View commit details
    Browse the repository at this point in the history
  2. Use alternative metrics statement style in pipeline

    I now realize why the rest of the codebase uses this style; it's just
    easier to work with as a user.
    tckmn committed Jun 11, 2024
    Configuration menu
    Copy the full SHA
    5abef1c View commit details
    Browse the repository at this point in the history
  3. Finish metrics proof of lower pipeline

    This seemed too easy, so I'm suspicious something's wrong, but
    everything seems to work. The definition of riscv_call now incurs a
    penalty equal to cost_SCall_L. I don't fully understand why, but
    presumably there's some boilerplate added somewhere.
    tckmn committed Jun 11, 2024
    Configuration menu
    Copy the full SHA
    6484871 View commit details
    Browse the repository at this point in the history
  4. Finish metrics patches in pipeline

    Only one file left with admits! (FlattenExpr)
    tckmn committed Jun 11, 2024
    Configuration menu
    Copy the full SHA
    7cb7783 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    98f5ca2 View commit details
    Browse the repository at this point in the history

Commits on Jun 15, 2024

  1. Factor out expr/stmt costs into MetricCosts.v

    Also update bedrock2 semantics for new metrics, which fixes
    FlattenExpr.v. All the other pipeline stages are now broken and need to
    be patched.
    tckmn committed Jun 15, 2024
    Configuration menu
    Copy the full SHA
    2e3ada6 View commit details
    Browse the repository at this point in the history
  2. MetricCosts migration: Spilling

    tckmn committed Jun 15, 2024
    Configuration menu
    Copy the full SHA
    88c314d View commit details
    Browse the repository at this point in the history
  3. MetricCosts migration: RegAlloc

    it's messy and can use improvements
    tckmn committed Jun 15, 2024
    Configuration menu
    Copy the full SHA
    33e328b View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    25004bf View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    5851d6d View commit details
    Browse the repository at this point in the history
  6. MetricCosts migration: Pipeline (finished!)

    the compiler has zero admits :D
    tckmn committed Jun 15, 2024
    Configuration menu
    Copy the full SHA
    a9d7747 View commit details
    Browse the repository at this point in the history

Commits on Jun 21, 2024

  1. Configuration menu
    Copy the full SHA
    681aead View commit details
    Browse the repository at this point in the history
  2. Merge pull request #1 from andres-erbsen/compilermetrics-mwpp

    fix MetricWeakestPrecondition and ...Properties
    tckmn authored Jun 21, 2024
    Configuration menu
    Copy the full SHA
    5f48741 View commit details
    Browse the repository at this point in the history

Commits on Jun 22, 2024

  1. Configuration menu
    Copy the full SHA
    ab56647 View commit details
    Browse the repository at this point in the history

Commits on Jul 7, 2024

  1. Configuration menu
    Copy the full SHA
    e5ba50c View commit details
    Browse the repository at this point in the history

Commits on Jul 8, 2024

  1. Configuration menu
    Copy the full SHA
    b389899 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    44380e0 View commit details
    Browse the repository at this point in the history
  3. Revert "add some simple tests for the new heuristic"

    This reverts commit 44380e0.
    pratapsingh1729 committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    c4213c4 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    105c5ea View commit details
    Browse the repository at this point in the history
  5. Revert "account for isReg in regalloc heuristic"

    This reverts commit e5ba50c.
    pratapsingh1729 committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    2c29dce View commit details
    Browse the repository at this point in the history

Commits on Jul 9, 2024

  1. fix ipow metrics proof

    tckmn committed Jul 9, 2024
    Configuration menu
    Copy the full SHA
    7d74179 View commit details
    Browse the repository at this point in the history

Commits on Jul 10, 2024

  1. additive style

    tckmn committed Jul 10, 2024
    Configuration menu
    Copy the full SHA
    74337b8 View commit details
    Browse the repository at this point in the history
  2. fix ipow again

    tckmn committed Jul 10, 2024
    Configuration menu
    Copy the full SHA
    63eeb7e View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    ce31e90 View commit details
    Browse the repository at this point in the history
  4. very messy SPI wip

    tckmn committed Jul 10, 2024
    Configuration menu
    Copy the full SHA
    496c5b7 View commit details
    Browse the repository at this point in the history

Commits on Jul 26, 2024

  1. clean up bits of PR

    tckmn committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    07eee80 View commit details
    Browse the repository at this point in the history
  2. correct call/spilling costs

    tckmn committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    e4358eb View commit details
    Browse the repository at this point in the history
  3. naming and tactic improvements

    tckmn committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    ae6c57b View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    56b462f View commit details
    Browse the repository at this point in the history
  5. fix qed slowness

    metriclit and most of s should go somewhere else eventually
    tckmn committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    bdecbb9 View commit details
    Browse the repository at this point in the history

Commits on Jul 31, 2024

  1. Configuration menu
    Copy the full SHA
    3aad17e View commit details
    Browse the repository at this point in the history

Commits on Aug 9, 2024

  1. remove unfinished loop lemmas

    to be restored later
    tckmn committed Aug 9, 2024
    Configuration menu
    Copy the full SHA
    9b9f221 View commit details
    Browse the repository at this point in the history
  2. slightly nicer cost_unfold

    tckmn committed Aug 9, 2024
    Configuration menu
    Copy the full SHA
    1d84825 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    2970594 View commit details
    Browse the repository at this point in the history
  4. oops forgot to delete this

    tckmn committed Aug 9, 2024
    Configuration menu
    Copy the full SHA
    46e8ccc View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    b8b232e View commit details
    Browse the repository at this point in the history

Commits on Aug 16, 2024

  1. Configuration menu
    Copy the full SHA
    5360013 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    070a202 View commit details
    Browse the repository at this point in the history