Skip to content
This repository has been archived by the owner on Aug 20, 2024. It is now read-only.

Implement NoCommonSubexpressionElimination #2291

Merged
merged 3 commits into from
Aug 9, 2021

Conversation

sequencer
Copy link
Member

Contributor Checklist

  • Did you add Scaladoc to every public function/method?
  • Did you update the FIRRTL spec to include every new feature/behavior?
  • Did you add at least one test demonstrating the PR?
  • Did you delete any extraneous printlns/debugging code?
  • Did you specify the type of improvement?
  • Did you state the API impact?
  • Did you specify the code generation impact?
  • Did you request a desired merge strategy?
  • Did you add text to be included in the Release Notes for this change?

Type of Improvement

  • new feature/API

API Impact

Add --no-common-subexpression-elimination to disable CSE.

Backend Code Generation Impact

None

Desired Merge Strategy

  • Rebase: You will rebase the PR onto master and it will be merged with a merge commit.

Release Notes

Add --no-common-subexpression-elimination to disable CSE.

Reviewer Checklist (only modified by reviewer)

  • Did you add the appropriate labels?
  • Did you mark the proper milestone (1.2.x, 1.3.0, 1.4.0) ?
  • Did you review?
  • Did you check whether all relevant Contributor checkboxes have been checked?
  • Did you mark as Please Merge?

@sequencer sequencer requested a review from seldridge July 11, 2021 07:01
@sequencer sequencer force-pushed the NoCommonSubexpressionElimination branch from 36e35b5 to d6080e7 Compare August 2, 2021 00:01
@sequencer sequencer force-pushed the NoCommonSubexpressionElimination branch from d6080e7 to 95deba4 Compare August 2, 2021 07:17
@sequencer
Copy link
Member Author

Asking for review from @seldridge.

Copy link
Member

@seldridge seldridge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great. It makes sense to me to have more fine-grained control over which optimizations are run.

Co-authored-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
@seldridge
Copy link
Member

I marked this as 1.5 due to perceived binary incompatibility issues around the change to the inheritance/mix-ins for CSE. (I think this is the case?) This patch be backported with a different approach, though I'm not sure this is necessary to backport. @sequencer: if you need this in 1.4.x or earlier, feel free to update. 😄

@sequencer
Copy link
Member Author

@seldridge 1.5 is fine :) let's put it into 1.5.

@sequencer sequencer added the Please Merge Accepted PRs that are ready to be merged. Useful when waiting on CI. label Aug 9, 2021
@mergify mergify bot merged commit 5f6ad34 into master Aug 9, 2021
@lingscale
Copy link
Contributor

Just like NoDCEAnnotation and NoConstantPropagationAnnotation, maybe NoCommonSubexpressionEliminationAnnotation more perfect than NoCommonSubexpressionElimination?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
API Addition (no impact on existing code) Please Merge Accepted PRs that are ready to be merged. Useful when waiting on CI.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants