[PATCH] D97436: [lld-link] Fix addrsig symbols merging in ICF.

Zequan Wu via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 26 20:36:29 PST 2021


zequanwu added a reviewer: pcc.
zequanwu added a comment.

In D97436#2591761 <https://reviews.llvm.org/D97436#2591761>, @pcc wrote:

> As far as I know the current behavior is that `/opt:icf` gives you full ICF for executable sections and safe ICF for non-executable sections. This is more than what MSVC does, which is full ICF for executable sections and no ICF for non-executable sections. I think it makes sense to add a mode that gives you full ICF for non-executable sections, but the behavior of `/opt:icf` should be preserved.

Initially, we found <https://bugs.chromium.org/p/chromium/issues/detail?id=1169276> that the current behavior of `/opt:icf` merges executable sections even if they are in address-significant table, which obviously is a bug. This patch is trying to fix it and adding a `/opt:safeicf` to do safe icf for both executable and non-executable sections. The behavior of `/opt:icf` is preserved.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D97436/new/

https://reviews.llvm.org/D97436



More information about the llvm-commits mailing list