File: systemz-large-stack-frames.ll

package info (click to toggle)
llvm-toolchain-19 1%3A19.1.7-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,998,520 kB
  • sloc: cpp: 6,951,680; ansic: 1,486,157; asm: 913,598; python: 232,024; f90: 80,126; objc: 75,281; lisp: 37,276; pascal: 16,990; sh: 10,009; ml: 5,058; perl: 4,724; awk: 3,523; makefile: 3,167; javascript: 2,504; xml: 892; fortran: 664; cs: 573
file content (42 lines) | stat: -rw-r--r-- 1,708 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
; REQUIRES: asserts
; REQUIRES: systemz-registered-target
; Used to fail with: LLVM ERROR: Error while trying to spill R5D from class ADDR64Bit: Cannot scavenge register without an emergency spill slot!


; RUN: llc %s --mtriple s390x-ibm-zos -filetype obj -o %t

; ModuleID = 'main.cpp'
source_filename = "main.cpp"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

; ModuleID = 'large-stack-frames.cpp'
source_filename = "large-stack-frames.cpp"
target datalayout = "E-m:l-p1:32:32-i1:8:16-i8:8:16-i64:64-f128:64-v128:64-a:8:16-n32:64"
target triple = "s390x-ibm-zos"
%struct.slice.108 = type { ptr, ptr, [8 x i64], [8 x i64], [8 x i64] }
declare void @dealloc(ptr) local_unnamed_addr #0
define internal void @foo([26 x i64] %co1, [26 x i64] %co2, [26 x i64] %co3, [26 x i64] %co4, [26 x i64] %co5, [26 x i64] %co6, [26 x i64] %co7, [26 x i64] %co8, i32 %skip_dispatch, ptr %0, i1 %1) #0 {
entry:
  %ref.tmp = alloca %struct.slice.108, align 8
  br i1 %1, label %error, label %if.end95
if.end95:
  br i1 %1, label %if.else.i1546, label %object.exit1547
if.else.i1546:
  tail call void @dealloc(ptr noundef nonnull %0)
  br label %object.exit1547
object.exit1547:
  %call96 = tail call fastcc noundef ptr @slice([26 x i64] inreg %co7, i32 noundef signext 1, ptr noundef nonnull @get_float, ptr noundef nonnull @object, i32 noundef signext 0)
  ret void
error:
  ret void
}
declare dso_local fastcc ptr @slice([26 x i64], i32, ptr, ptr, i32) unnamed_addr #0
define internal ptr @get_float(ptr %itemp, ptr %2) #0 {
entry:
  ret ptr %2
}
define internal i32 @object(ptr %itemp, ptr %obj) #0 {
entry:
  ret i32 1
}