[lld] r335738 - [ELF] - ICF: Add test case to check many sections case.

George Rimar via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 27 07:37:02 PDT 2018


Author: grimar
Date: Wed Jun 27 07:37:02 2018
New Revision: 335738

URL: http://llvm.org/viewvc/llvm-project?rev=335738&view=rev
Log:
[ELF] - ICF: Add test case to check many sections case.

Currently, ICF does not enable threading if we have less than 1024
sections in each equivalence class.

And the following code is uncovered by our test cases:
https://github.com/llvm-mirror/lld/blob/master/ELF/ICF.cpp#L404

This patch adds a test case that triggers the mentioned code to execute.

Added:
    lld/trunk/test/ELF/icf-many-sections.s

Added: lld/trunk/test/ELF/icf-many-sections.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/icf-many-sections.s?rev=335738&view=auto
==============================================================================
--- lld/trunk/test/ELF/icf-many-sections.s (added)
+++ lld/trunk/test/ELF/icf-many-sections.s Wed Jun 27 07:37:02 2018
@@ -0,0 +1,62 @@
+# REQUIRES: x86
+# RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o %t
+# RUN: ld.lld --icf=all --print-icf-sections %t -o %t2 | FileCheck %s -allow-empty
+
+# CHECK-NOT: selected
+
+.macro gen_sections4 z
+        .section .a\z,"ax"
+        .section .b\z,"ax"
+        .section .c\z,"ax"
+        .section .d\z,"ax"
+.endm
+
+.macro gen_sections8 z
+        gen_sections4 a\z
+        gen_sections4 b\z
+.endm
+
+.macro gen_sections16 z
+        gen_sections8 a\z
+        gen_sections8 b\z
+.endm
+
+.macro gen_sections32 x
+        gen_sections16 a\x
+        gen_sections16 b\x
+.endm
+
+.macro gen_sections64 z
+        gen_sections32 a\z
+        gen_sections32 b\z
+.endm
+
+.macro gen_sections128 z
+        gen_sections64 a\z
+        gen_sections64 b\z
+.endm
+
+.macro gen_sections256 z
+        gen_sections128 a\z
+        gen_sections128 b\z
+.endm
+
+.macro gen_sections512 z
+        gen_sections256 a\z
+        gen_sections256 b\z
+.endm
+
+.macro gen_sections1024 z
+        gen_sections512 a\z
+        gen_sections512 b\z
+.endm
+
+.macro gen_sections2048 z
+        gen_sections1024 a\z
+        gen_sections1024 b\z
+.endm
+
+gen_sections2048 a
+
+.global _start
+_start:




More information about the llvm-commits mailing list