1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 20:51:52 +01:00
llvm-mirror/test/CodeGen/X86/xray-loop-detection.ll
Ian Levesque d48e492a33 [xray] Add xray-ignore-loops option
XRay allows tuning by minimum function size, but also always instruments
functions with loops in them.  If the minimum function size is set to a
large value the loop instrumention ends up causing most functions to be
instrumented anyway.  This adds a new flag, xray-ignore-loops, to disable
the loop detection logic.

Differential Revision: https://reviews.llvm.org/D72659
2020-01-17 13:32:17 -08:00

23 lines
671 B
LLVM

; RUN: llc -verify-machineinstrs -filetype=asm -o - -mtriple=x86_64-unknown-linux-gnu < %s | FileCheck %s
; RUN: llc -verify-machineinstrs -filetype=asm -o - -mtriple=x86_64-darwin-unknown < %s | FileCheck %s
define i32 @foo(i32 %i) nounwind noinline uwtable "xray-instruction-threshold"="10" {
entry:
br label %Test
Test:
%indvar = phi i32 [0, %entry], [%nextindvar, %Inc]
%cond = icmp eq i32 %indvar, %i
br i1 %cond, label %Exit, label %Inc
Inc:
%nextindvar = add i32 %indvar, 1
br label %Test
Exit:
%retval = phi i32 [%indvar, %Test]
ret i32 %retval
}
; CHECK-LABEL: xray_sled_0:
; CHECK-NEXT: .ascii "\353\t"
; CHECK-NEXT: nopw 512(%rax,%rax)