Skip to content

Conversation

haydar-c
Copy link
Contributor

@haydar-c haydar-c commented Oct 9, 2025

Changes:

  • Previously, GUI messages (e.g., during SA placement or routing) were only refreshed upon user interaction or stage changes (being stale 1 step). Bringing back the message update on stage.
  • The signal handler checkpointing logic had been non-functional and giving compilation errors; restoring its functionality when VPR_USE_SIGNAL_HANDLER is set.
  • Updated the old menu bar image

Overall_view

@github-actions github-actions bot added VPR VPR FPGA Placement & Routing Tool docs Documentation lang-cpp C/C++ code labels Oct 9, 2025
-Makes the message shown in the gui and drawed state consistent
without requiring user interaction.
-Makes the signal handler checkpointing functional again when enabled.
@haydar-c haydar-c force-pushed the update_images_and_gui_message branch from fd15259 to 6d48c27 Compare October 9, 2025 13:46

std::string placer_checkpoint_file = "placer_checkpoint.place";
VTR_LOG("Attempting to checkpoint current placement to file: %s\n", placer_checkpoint_file.c_str());
print_place(nullptr, nullptr, placer_checkpoint_file.c_str(), g_vpr_ctx.placement().block_locs());
Copy link
Contributor

Choose a reason for hiding this comment

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

In the placement stage, g_vpr_ctx.placement().block_locs() does not contain block locations. It is stored locally withing a Placer object.

VTR_LOG("Recieved three uncleared SIGINTs: Exiting...\n");
std::quick_exit(INTERRUPTED_EXIT_CODE);
}
VTR_LOG("Recieved SIGINT: Attempting to checkpoint then exit...\n");
Copy link
Contributor

Choose a reason for hiding this comment

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

I’m not sure if it’s safe to call VTR_LOG from a signal handler. It probably calls standard library functions internally, which are not safe to use in a signal handler.

and save block locs after each SA temprature update when signal
handler enabled.
Copy link
Contributor

@vaughnbetz vaughnbetz left a comment

Choose a reason for hiding this comment

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

Looks good except needs a function-level comment.
Also document the pause button.

void checkpoint();

std::atomic<int> uncleared_sigint_count(0);
static inline void safe_write(const char* msg) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Need a doxygen comment; what is this for?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Documentation lang-cpp C/C++ code VPR VPR FPGA Placement & Routing Tool

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants