[lld] r345322 - [ELF] Don't check if symbols in .llvm.call-graph-profile are unorderable

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 25 15:15:42 PDT 2018


Author: maskray
Date: Thu Oct 25 15:15:42 2018
New Revision: 345322

URL: http://llvm.org/viewvc/llvm-project?rev=345322&view=rev
Log:
[ELF] Don't check if symbols in .llvm.call-graph-profile are unorderable

Summary: There are too many reasonable cases that would be considered unorderable.

Reviewers: ruiu, espindola, Bigcheese

Reviewed By: ruiu

Subscribers: grimar, emaste, arichardson, llvm-commits

Differential Revision: https://reviews.llvm.org/D53669

Removed:
    lld/trunk/test/ELF/cgprofile-obj-warn.s
Modified:
    lld/trunk/ELF/Driver.cpp

Modified: lld/trunk/ELF/Driver.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Driver.cpp?rev=345322&r1=345321&r2=345322&view=diff
==============================================================================
--- lld/trunk/ELF/Driver.cpp (original)
+++ lld/trunk/ELF/Driver.cpp Thu Oct 25 15:15:42 2018
@@ -690,22 +690,6 @@ template <class ELFT> static void readCa
         continue;
       auto *FromSec = dyn_cast_or_null<InputSectionBase>(FromSym->Section);
       auto *ToSec = dyn_cast_or_null<InputSectionBase>(ToSym->Section);
-
-      // The profile from .llvm.call-graph-profile is conceptually affiliated to
-      // FromSec. Don't warn unorderable symbol if FromSym is not absolute
-      // (FromSec isn't null) and the section is discarded
-      // (!FromSec->Repl->Live).
-      //
-      // We also don't want to warn when ToSym is undefined or is in a shared
-      // object (as symbols in shared objects are fixed and unorderable).
-      //
-      // The check used here is more relaxed (no warning if either FromSym or
-      // ToSym is not Defined) for simplicity and there is no compelling reason
-      // to warn on more cases.
-      if (!FromSec || FromSec->Repl->Live) {
-        warnUnorderableSymbol(FromSym);
-        warnUnorderableSymbol(ToSym);
-      }
       if (FromSec && ToSec)
         Config->CallGraphProfile[{FromSec, ToSec}] += CGPE.cgp_weight;
     }

Removed: lld/trunk/test/ELF/cgprofile-obj-warn.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/cgprofile-obj-warn.s?rev=345321&view=auto
==============================================================================
--- lld/trunk/test/ELF/cgprofile-obj-warn.s (original)
+++ lld/trunk/test/ELF/cgprofile-obj-warn.s (removed)
@@ -1,34 +0,0 @@
-# REQUIRES: x86
-
-# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
-
-# RUN: ld.lld -e A %t -o /dev/null \
-# RUN:   -noinhibit-exec -icf=all 2>&1 | FileCheck %s
-
-    .section    .text.C,"ax", at progbits
-    .globl  C
-C:
-    mov poppy, %rax
-    retq
-
-B = 0x1234
-
-    .section    .text.A,"ax", at progbits
-    .globl  A
-A:
-    mov poppy, %rax
-    retq
-
-    .cg_profile A, B, 100
-    .cg_profile A, C, 40
-    .cg_profile B, C, 30
-    .cg_profile adena1, A, 30
-    .cg_profile A, adena2, 30
-    .cg_profile poppy, A, 30
-
-# CHECK: unable to order absolute symbol: B
-
-# RUN: ld.lld %t -o /dev/null \
-# RUN:   -noinhibit-exec -icf=all --no-warn-symbol-ordering 2>&1 \
-# RUN:   | FileCheck %s --check-prefix=NOWARN
-# NOWARN-NOT: unable to order




More information about the llvm-commits mailing list