mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-06 03:08:43 +00:00
c2011f0a8c
The verifier currently runs three times in LTO: (1) after parsing, (2) at the beginning of the optimization pipeline, and (3) at the end of it. The first run is important, since we're not sure where the bitcode comes from and it's nice to validate it, but in release builds the extra runs aren't appropriate. This commit: - Allows these runs to be disabled in LTOCodeGenerator. - Adds command-line options to llvm-lto. - Adds command-line options to libLTO.dylib, and disables the verifier by default in release builds (based on NDEBUG). This shaves about 3.5% off the runtime of ld64 when linking verify-uselistorder with -flto -g. rdar://22509081 llvm-svn: 247729
19 lines
654 B
LLVM
19 lines
654 B
LLVM
; RUN: llvm-as < %s >%t.bc
|
|
; RUN: llvm-lto -debug-pass=Arguments -exported-symbol=_f -o /dev/null %t.bc 2>&1 -disable-verify | FileCheck %s
|
|
; RUN: llvm-lto -debug-pass=Arguments -exported-symbol=_f -o /dev/null %t.bc 2>&1 | FileCheck %s -check-prefix=VERIFY
|
|
|
|
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
|
|
target triple = "x86_64-apple-macosx10.10.0"
|
|
|
|
; -disable-verify should disable verification from the optimization pipeline.
|
|
; CHECK: Pass Arguments: -verify -internalize
|
|
; CHECK-NOT: -verify
|
|
|
|
; VERIFY: Pass Arguments: -verify -internalize
|
|
; VERIFY: Pass Arguments: {{.*}} -verify {{.*}} -verify
|
|
|
|
define void @f() {
|
|
entry:
|
|
ret void
|
|
}
|