Skip to content

New Timers for Daedalus' Phases#38

Merged
Casperento merged 9 commits intomainfrom
phases-time
Oct 21, 2025
Merged

New Timers for Daedalus' Phases#38
Casperento merged 9 commits intomainfrom
phases-time

Conversation

@Casperento
Copy link
Copy Markdown
Collaborator

This pull request introduces several significant changes focused on improving the Daedalus LLVM pass infrastructure, with a particular emphasis on codebase cleanup, performance measurement, and experiment automation. The most important changes are the removal of unused function merging code, the introduction of detailed timing for pass phases, and enhancements to experiment reproducibility in the Docker environment.

Codebase cleanup and refactoring:

  • Removed all commented-out and unused code related to the function merging pass, including the mergeFunctions method and its references in both ProgramSlice.h and ProgramSlice.cpp. This streamlines the codebase and eliminates confusion about unsupported or deprecated features.
  • Added a default constructor for the ProgramSlice class to support new construction patterns.

Performance measurement and profiling:

  • Introduced multiple Timer and TimerGroup objects to measure the duration of main phases and subphases of the Daedalus pass, including outlining, merging, and simplification. Timers are conditionally activated based on LLVM's timing flags, and code blocks are wrapped with TimeRegion for accurate profiling.

Experiment automation and Docker improvements:

  • Updated the Dockerfile to automate running two experiments sequentially, increasing parallelism (-w 20), and specifying all required paths and options for reproducibility. Removed the separate build of a code-size LLVM fork, as it is no longer necessary.

Minor code and documentation updates:

  • Improved naming consistency (e.g., renaming mergeTo to mergedFunctions) for clarity in function parameters and documentation.

Structural refactoring:

  • Refactored the main Daedalus pass by extracting the outlining and merging logic into separate functions (outlinePhase and mergePhase), improving readability and maintainability.

These changes collectively enhance the maintainability, observability, and reproducibility of the Daedalus project.

@Casperento Casperento self-assigned this Oct 21, 2025
@Casperento Casperento merged commit f659d28 into main Oct 21, 2025
1 check passed
@Casperento Casperento deleted the phases-time branch October 21, 2025 20:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant