dead_code_removing (Новый проход) #21

Merged
Alexander_KS merged 6 commits from dead_code_removing into master 2024-01-12 18:45:36 +00:00
Collaborator

Вынес общую часть с обходом ГПУ в отдельный код, который можно переиспользовать и переиспользовал его вместе с другой функцией из анализа живых переменных в новом проходе удаления мёртвого кода. Анализ и удаление недостижимого кода пока не сделаны.

Вынес общую часть с обходом ГПУ в отдельный код, который можно переиспользовать и переиспользовал его вместе с другой функцией из анализа живых переменных в новом проходе удаления мёртвого кода. Анализ и удаление недостижимого кода пока не сделаны.
xnpster added 3 commits 2024-01-09 15:33:53 +00:00
Author
Collaborator

Из-за изменений в анализе живых переменных он маловероятно, но может перестать работать корректно, как и анализ приватных в следствии этого, поэтому это нужно ещё протестировать

Из-за изменений в анализе живых переменных он маловероятно, но может перестать работать корректно, как и анализ приватных в следствии этого, поэтому это нужно ещё протестировать
Author
Collaborator

Ещё я не совсем уверен в том, как правильно удалять SgStatement'ы. Нужно ли ещё удалять отдельно его SgExpression'ы? Нужно ли вызывать деструктор через delete? Вроде так, как написал я, не вызывает ошибок

Ещё я не совсем уверен в том, как правильно удалять SgStatement'ы. Нужно ли ещё удалять отдельно его SgExpression'ы? Нужно ли вызывать деструктор через delete? Вроде так, как написал я, не вызывает ошибок
Owner

@xnpster

Ещё я не совсем уверен в том, как правильно удалять SgStatement'ы. Нужно ли ещё удалять отдельно его SgExpression'ы? Нужно ли вызывать деструктор через delete? Вроде так, как написал я, не вызывает ошибок

удалять Sg* объекты не нужно, для "удаления" SgStatement есть функция извлечения и удаления этого оператора - extract/delete соответственно. Для SgExpression достаточно присвоить NULL в соответствующее поддерево или изменить связи. Удаление объектов класса может привести к не предвиденным обстоятельствам, поэтому

  1. их не нужно размножать без надобности
  2. их не нужно удалять через delete
@xnpster > Ещё я не совсем уверен в том, как правильно удалять SgStatement'ы. Нужно ли ещё удалять отдельно его SgExpression'ы? Нужно ли вызывать деструктор через delete? Вроде так, как написал я, не вызывает ошибок удалять Sg* объекты не нужно, для "удаления" SgStatement есть функция извлечения и удаления этого оператора - extract/delete соответственно. Для SgExpression достаточно присвоить NULL в соответствующее поддерево или изменить связи. Удаление объектов класса может привести к не предвиденным обстоятельствам, поэтому 1. их не нужно размножать без надобности 2. их не нужно удалять через delete
xnpster added 1 commit 2024-01-10 19:39:32 +00:00
Author
Collaborator

Да, переход на вектора в живых переменных действительно дал прям огромное ускорение, с ~300 секунд до ~120

Да, переход на вектора в живых переменных действительно дал прям огромное ускорение, с ~300 секунд до ~120
xnpster added 1 commit 2024-01-10 20:53:39 +00:00
xnpster added 1 commit 2024-01-12 13:11:55 +00:00
Alexander_KS merged commit f2f46e5e79 into master 2024-01-12 18:45:36 +00:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Alexander_KS/SAPFOR#21