avast / avast/retdec

Error handling during postprocessing in the back end

Open
#228 1 comment 0 reactions 0 assignees View on GitHub
C-llvmir2hll new-feature
Dominant language
C++
Stars
8.6k
Forks
1k
PR merge metrics
No merged PRs in 30d

Description

I now have problems with the optimizations that take place in the backend. In the case of different examples, regular terminations occur here. This leaves half-finished files behind and you have to start the process over and over again. This is not nice, because it takes a certain amount of time to get to this point, depending on the file. I therefore have the following proposals:

1. if a process is terminated pretty much at the end, is there a change to continue with the existing files without creating them over and over again? For example, if I want to extract a certain function in the result of the assembler, I have to add it again and again during the process. It would be nice if you could analyze the original file once and then continue with it. Then the processing would be much faster.

2. interruption during processing in the backend. It would be nice that the complete process is not considered to be faulty, only if a processing (optimizer) has failed.

3. optimization of only certain functions. It would be desirable if one could specify per function which optimizations are to be carried out.

These are the main points I have noticed. It would be desirable if the processing could be made more robust and thus faster.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by tracing the backend postprocessing and optimizer flow described in the issue, focusing on how interrupted runs leave partial files and how failures are reported. Done would require an agreed design for resuming existing output, distinguishing optimizer failure from full-process failure, and selecting optimizations per function.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
performance, reverse-engineering
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.