make: immediately expand deferred vars#3801
Open
Kimplul wants to merge 1 commit intoThe-OpenROAD-Project:masterfrom
Open
make: immediately expand deferred vars#3801Kimplul wants to merge 1 commit intoThe-OpenROAD-Project:masterfrom
Kimplul wants to merge 1 commit intoThe-OpenROAD-Project:masterfrom
Conversation
Signed-off-by: Kimplul <kimi.h.kuparinen@gmail.com>
Collaborator
|
I think your methodology is faulty because it's not possible ibex finished in under 1 second. Did you |
Author
|
@rovinski To clarify, I'm not running the full Ibex flow, I've previously finished the flow and running |
Member
|
There is something pathologically bad about NIX if doing essentially no work takes 50s. @hzeller have observed this? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When
IN_NIX_SHELLis defined,flow/scripts/variables.mkdefines some commonly used variables likeOPENROAD_EXEwithOPENROAD_EXE ?= $(shell ...). The conditional assignment (?=) is a deferred assignment, so every timeOPENROAD_EXEis expanded, the corresponding shell command is run. Apparently some of these variables are expanded often enough that the deferred assignment has a somewhat significant impact on runtime, here's how longmaketakes to run after having synthesized the Ibex example from the docs:Before:
The fix here is to immediately re-expand the newly defined variables so the shell command is only ran once.
After: