mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
b33546a190
Summary: When bugpoint attempts to find the other executables it needs to run, such as `opt` or `clang`, it tries searching the user's PATH. However, in many cases, the 'bugpoint' executable is part of an LLVM build, and the 'opt' executable it's looking for is in that same directory. Many LLVM tools handle this case by using the `Paths` parameter of `llvm::sys::findProgramByName`, passing the parent path of the currently running executable. Do this same thing for bugpoint. However, to preserve the current behavior exactly, first search the user's PATH, and then search for 'opt' in the directory containing 'bugpoint'. Test Plan: `check-llvm`. Many of the existing bugpoint tests no longer need to use the `--opt-command` option as a result of these changes. Reviewers: MatzeB, silvas, davide Reviewed By: MatzeB, davide Subscribers: davide, llvm-commits Differential Revision: https://reviews.llvm.org/D54884 llvm-svn: 348734
59 lines
2.6 KiB
LLVM
59 lines
2.6 KiB
LLVM
; REQUIRES: loadable_module
|
|
; RUN: bugpoint -load %llvmshlibdir/BugpointPasses%shlibext %s -output-prefix %t -bugpoint-crashcalls -silence-passes -disable-namedmd-remove -disable-strip-debuginfo -disable-strip-debug-types > /dev/null
|
|
; RUN: llvm-dis %t-reduced-simplified.bc -o - | FileCheck %s
|
|
;
|
|
; RUN: bugpoint -load %llvmshlibdir/BugpointPasses%shlibext %s -output-prefix %t-nodebug -bugpoint-crashcalls -silence-passes -disable-namedmd-remove > /dev/null
|
|
; RUN: llvm-dis %t-nodebug-reduced-simplified.bc -o - | FileCheck %s --check-prefix=NODEBUG
|
|
;
|
|
; RUN: bugpoint -load %llvmshlibdir/BugpointPasses%shlibext %s -output-prefix %t-notype -bugpoint-crashcalls -silence-passes -disable-namedmd-remove -disable-strip-debuginfo > /dev/null
|
|
; RUN: llvm-dis %t-notype-reduced-simplified.bc -o - | FileCheck %s --check-prefix=NOTYPE
|
|
;
|
|
; Bugpoint should keep the call's metadata attached to the call.
|
|
|
|
; CHECK: call void @foo(), !dbg ![[LOC:[0-9]+]], !attach ![[CALL:[0-9]+]]
|
|
; NODEBUG: call void @foo(), !attach ![[CALL:[0-9]+]]
|
|
; NOTYPE: call void @foo(), !dbg ![[LOC:[0-9]+]], !attach ![[CALL:[0-9]+]]
|
|
; NODEBUG-NOT: call void @foo(), !attach ![[CALL:[0-9]+]]
|
|
; NOTYPE-NOT: !DIBasicType
|
|
; NOTYPE: !DICompileUnit
|
|
; NOTYPE-NOT: !DIBasicType
|
|
; CHECK-DAG: ![[LOC]] = !DILocation(line: 104, column: 105, scope: ![[SCOPE:[0-9]+]])
|
|
; CHECK-DAG: ![[SCOPE]] = distinct !DISubprogram(name: "test",{{.*}}file: ![[FILE:[0-9]+]]
|
|
; CHECK-DAG: ![[FILE]] = !DIFile(filename: "source.c", directory: "/dir")
|
|
; CHECK-DAG: ![[CALL]] = !{!"the call to foo"}
|
|
|
|
%rust_task = type {}
|
|
define void @test(i32* %a, i8* %b) {
|
|
%s = mul i8 22, 9, !attach !0, !dbg !10
|
|
store i8 %s, i8* %b, !attach !1, !dbg !11
|
|
call void @foo(), !attach !2, !dbg !12
|
|
store i32 7, i32* %a, !attach !3, !dbg !13
|
|
%t = add i32 0, 5, !attach !4, !dbg !14
|
|
ret void
|
|
}
|
|
|
|
declare void @foo()
|
|
|
|
!llvm.module.flags = !{!17}
|
|
!llvm.dbg.cu = !{!8}
|
|
|
|
!0 = !{!"boring"}
|
|
!1 = !{!"uninteresting"}
|
|
!2 = !{!"the call to foo"}
|
|
!3 = !{!"noise"}
|
|
!4 = !{!"filler"}
|
|
|
|
!8 = distinct !DICompileUnit(language: DW_LANG_C99, file: !15)
|
|
!9 = distinct !DISubprogram(name: "test", file: !15, type: !18, unit: !8)
|
|
!10 = !DILocation(line: 100, column: 101, scope: !9)
|
|
!11 = !DILocation(line: 102, column: 103, scope: !9)
|
|
!12 = !DILocation(line: 104, column: 105, scope: !9)
|
|
!13 = !DILocation(line: 106, column: 107, scope: !9)
|
|
!14 = !DILocation(line: 108, column: 109, scope: !9)
|
|
!15 = !DIFile(filename: "source.c", directory: "/dir")
|
|
!16 = !{}
|
|
!17 = !{i32 1, !"Debug Info Version", i32 3}
|
|
!18 = !DISubroutineType(types: !19)
|
|
!19 = !{!20, !20}
|
|
!20 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|