From 34ca831d9fe6d4ac1c73570fddd072ab6c3f7ea4 Mon Sep 17 00:00:00 2001 From: Keno Fischer Date: Fri, 6 Nov 2015 00:12:50 +0000 Subject: [bugpoint] Add a named metadata (+their operands) reducer Summary: We frequently run bugpoint on a linked module that consists of all modules we create while jitting the julia standard library. This module has a very large number of compile units (10000+) in `llvm.dbg.cu`, which didn't get reduced at all, requiring manual post processing. This is an attempt to have bugpoint go through and attempt to reduce the number of global named metadata nodes as well as their operands, to cut down the number of roots for such metadata. Reviewers: dexonsmith, reames, pete Subscribers: pete, dexonsmith, reames, llvm-commits Differential Revision: http://reviews.llvm.org/D14043 llvm-svn: 252247 --- llvm/test/BugPoint/named-md.ll | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 llvm/test/BugPoint/named-md.ll (limited to 'llvm/test') diff --git a/llvm/test/BugPoint/named-md.ll b/llvm/test/BugPoint/named-md.ll new file mode 100644 index 00000000000..1fffa2cb978 --- /dev/null +++ b/llvm/test/BugPoint/named-md.ll @@ -0,0 +1,39 @@ +; RUN: bugpoint -load %llvmshlibdir/BugpointPasses%shlibext %s -output-prefix %t -bugpoint-crash-too-many-cus -silence-passes > /dev/null +; RUN: llvm-dis %t-reduced-simplified.bc -o - | FileCheck %s +; RUN-DISABLE: bugpoint -disable-namedmd-remove -load %llvmshlibdir/BugpointPasses%shlibext %s -output-prefix %t -bugpoint-crash-too-many-cus -silence-passes > /dev/null +; RUN-DISABLE: llvm-dis %t-reduced-simplified.bc -o - | FileCheck %s +; REQUIRES: loadable_module + +; CHECK: !llvm.dbg.cu = !{![[FIRST:[0-9]+]], ![[SECOND:[0-9]+]]} +; CHECK-DISABLE: !llvm.dbg.cu = !{![[FIRST:[0-9]+]], ![[SECOND:[0-9]+]], +; CHECK-DISABLE-SAME: ![[THIRD:[0-9]+]], ![[FOURTH:[0-9]+]], ![[FIFTH:[0-9]+]]} +!llvm.dbg.cu = !{!0, !1, !2, !3, !4, !5} +; CHECK-NOT: !named +; CHECK-DISABLE: !named +!named = !{!0, !1, !2, !3, !4, !5} +; CHECK: !llvm.module.flags = !{![[DIVERSION:[0-9]+]]} +!llvm.module.flags = !{!6, !7} + +; CHECK-DAG: ![[FIRST]] = distinct !DICompileUnit(language: DW_LANG_Julia, +; CHECK-DAG: ![[SECOND]] = distinct !DICompileUnit(language: DW_LANG_Julia, +; CHECK-DAG: ![[DIVERSION]] = !{i32 2, !"Debug Info Version", i32 3} +; CHECK-DAG: !DIFile(filename: "a", directory: "b") + +; 4 nodes survive. Due to renumbering !4 should not exist +; CHECK-NOT: !4 + +!0 = distinct !DICompileUnit(language: DW_LANG_Julia, + file: !8) +!1 = distinct !DICompileUnit(language: DW_LANG_Julia, + file: !8) +!2 = distinct !DICompileUnit(language: DW_LANG_Julia, + file: !8) +!3 = distinct !DICompileUnit(language: DW_LANG_Julia, + file: !8) +!4 = distinct !DICompileUnit(language: DW_LANG_Julia, + file: !8) +!5 = distinct !DICompileUnit(language: DW_LANG_Julia, + file: !8) +!6 = !{i32 2, !"Dwarf Version", i32 2} +!7 = !{i32 2, !"Debug Info Version", i32 3} +!8 = !DIFile(filename: "a", directory: "b") -- cgit v1.2.3