Closed Bug 584187 Opened 14 years ago Closed 11 years ago

dehydra: add multiple script support

Categories

(Developer Infrastructure :: Source Code Analysis, defect)

x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: ehren.m, Unassigned)

References

Details

Attachments

(1 file)

Attached patch patchSplinter Review
A couple of things:

I'm not sure we even need the postGlobalNamespace variable. I tried removing the code calling dehydra_visitDecl from dehydra_cp_pre_genericize and couldn't find a difference when running the test suite. Also the global variable |processed| might not be necessary since gcc_plugin_post_parse should only be called once per script. For now I've left these as Dehydra fields but I may be able to remove them with a little more investigation.

I've also got an issue when using this with a static_checking build. In particular the jsstack analysis eats up a tonne of time when run with other scripts on one particular file. Yesterday this tripped an assert in nanojit but with a new tm rev. i'm just seeing horrible perf with this file.

I'm still looking into this but regardless we might want to run jsstack on js/src only (leaving js/src/config/static-checking-config.mk essentially unchanged but removing jsstack from config/static-checking-config.mk).
Attachment #462518 - Flags: feedback?(tglek)
Unfortunately, this is an across the board perf lose compared to the pure js solution.
Hmm, could we maybe stick these into own threads to make em wins?
Sounds like the practical solution would be to add the multiplexing script to the standard dehydra distribution and keep it in js. Thanks for doing this research.
Threading could be an option for a couple of the callbacks like PLUGIN_FINISH_TYPE... rather than registering multiple callbacks spawn a thread for each script. You could also combine scripts that run with a common pass position into one pass and do the same thing.

I think I agree that it's better to go with js though. After running some tests compiling a large file with 10+ scripts I'm seeing about a 50% increase in running time (an extra minute). It could take real finagling to get the C up to speed.

Anyhow, I'll move the multiplex stuff into dehydra proper.
Comment on attachment 462518 [details] [diff] [review]
patch

I think we decided that going beyond js-side multiplexing is crazyness
Attachment #462518 - Flags: feedback?(tglek)
Dehydra and treehydra are no longer maintained by Mozilla.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → WONTFIX
Product: Core → Firefox Build System
Product: Firefox Build System → Developer Infrastructure
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: