[llvm-bugs] [Bug 27809] New: i386: error: ran out of registers during register allocation

via llvm-bugs llvm-bugs at lists.llvm.org
Wed May 18 17:40:22 PDT 2016


https://llvm.org/bugs/show_bug.cgi?id=27809

            Bug ID: 27809
           Summary: i386: error: ran out of registers during register
                    allocation
           Product: new-bugs
           Version: 3.8
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: superjoe30 at gmail.com
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

Try to compile this with: clang -nostdlib -o test test.ll

And you'll get: error: ran out of registers during register allocation



; ModuleID = './test.zig'
target datalayout = "e-m:e-p:32:32-f64:32:64-f80:32-n8:16:32-S128"
target triple = "i386-pc-linux-gnu"

; Function Attrs: nounwind
declare void @llvm.debugtrap() #0

; Function Attrs: argmemonly nounwind
declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture readonly,
i32, i32, i1) #1

; Function Attrs: argmemonly nounwind
declare void @llvm.memset.p0i8.i32(i8* nocapture, i8, i32, i32, i1) #1

; Function Attrs: nounwind
define internal fastcc i32 @_syscall6(i32, i32, i32, i32, i32, i32, i32) #2
!dbg !5 {
entry:
  %number = alloca i32, align 4
  %arg1 = alloca i32, align 4
  %arg2 = alloca i32, align 4
  %arg3 = alloca i32, align 4
  %arg4 = alloca i32, align 4
  %arg5 = alloca i32, align 4
  %arg6 = alloca i32, align 4
  store i32 %0, i32* %number
  call void @llvm.dbg.declare(metadata i32* %number, metadata !11, metadata
!18), !dbg !19
  store i32 %1, i32* %arg1
  call void @llvm.dbg.declare(metadata i32* %arg1, metadata !12, metadata !18),
!dbg !20
  store i32 %2, i32* %arg2
  call void @llvm.dbg.declare(metadata i32* %arg2, metadata !13, metadata !18),
!dbg !21
  store i32 %3, i32* %arg3
  call void @llvm.dbg.declare(metadata i32* %arg3, metadata !14, metadata !18),
!dbg !22
  store i32 %4, i32* %arg4
  call void @llvm.dbg.declare(metadata i32* %arg4, metadata !15, metadata !18),
!dbg !23
  store i32 %5, i32* %arg5
  call void @llvm.dbg.declare(metadata i32* %arg5, metadata !16, metadata !18),
!dbg !24
  store i32 %6, i32* %arg6
  call void @llvm.dbg.declare(metadata i32* %arg6, metadata !17, metadata !18),
!dbg !25
  %7 = load i32, i32* %number, !dbg !26
  %8 = load i32, i32* %arg1, !dbg !28
  %9 = load i32, i32* %arg2, !dbg !29
  %10 = load i32, i32* %arg3, !dbg !30
  %11 = load i32, i32* %arg4, !dbg !31
  %12 = load i32, i32* %arg5, !dbg !32
  %13 = load i32, i32* %arg6, !dbg !33
  %14 = call i32 asm sideeffect "int $$0x80",
"={eax},{eax},{ebx},{ecx},{edx},{esi},{edi},{ebp}"(i32 %7, i32 %8, i32 %9, i32
%10, i32 %11, i32 %12, i32 %13), !dbg !34
  ret i32 %14, !dbg !35
}

; Function Attrs: nounwind readnone
declare void @llvm.dbg.declare(metadata, metadata, metadata) #3

attributes #0 = { nounwind }
attributes #1 = { argmemonly nounwind }
attributes #2 = { nounwind "no-frame-pointer-elim"="true"
"no-frame-pointer-elim-non-leaf" }
attributes #3 = { nounwind readnone }

!llvm.module.flags = !{!0}
!llvm.dbg.cu = !{!1}

!0 = !{i32 2, !"Debug Info Version", i32 3}
!1 = distinct !DICompileUnit(language: DW_LANG_C99, file: !2, producer: "zig
0.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: 1, enums: !3,
subprograms: !4)
!2 = !DIFile(filename: "./test.zig", directory: ".")
!3 = !{}
!4 = !{!5}
!5 = distinct !DISubprogram(name: "syscall6", scope: !6, file: !6, line: 2,
type: !7, isLocal: true, isDefinition: true, scopeLine: 2, isOptimized: false,
variables: !10)
!6 = !DIFile(filename: "test.zig", directory: ".")
!7 = !DISubroutineType(types: !8)
!8 = !{!9, !9, !9, !9, !9, !9, !9, !9}
!9 = !DIBasicType(name: "isize", size: 32, align: 32, encoding: DW_ATE_signed)
!10 = !{!11, !12, !13, !14, !15, !16, !17}
!11 = !DILocalVariable(name: "number", arg: 1, scope: !5, file: !6, line: 2,
type: !9)
!12 = !DILocalVariable(name: "arg1", arg: 2, scope: !5, file: !6, line: 2,
type: !9)
!13 = !DILocalVariable(name: "arg2", arg: 3, scope: !5, file: !6, line: 2,
type: !9)
!14 = !DILocalVariable(name: "arg3", arg: 4, scope: !5, file: !6, line: 2,
type: !9)
!15 = !DILocalVariable(name: "arg4", arg: 5, scope: !5, file: !6, line: 3,
type: !9)
!16 = !DILocalVariable(name: "arg5", arg: 6, scope: !5, file: !6, line: 3,
type: !9)
!17 = !DILocalVariable(name: "arg6", arg: 7, scope: !5, file: !6, line: 3,
type: !9)
!18 = !DIExpression()
!19 = !DILocation(line: 2, column: 17, scope: !5)
!20 = !DILocation(line: 2, column: 32, scope: !5)
!21 = !DILocation(line: 2, column: 45, scope: !5)
!22 = !DILocation(line: 2, column: 58, scope: !5)
!23 = !DILocation(line: 3, column: 5, scope: !5)
!24 = !DILocation(line: 3, column: 18, scope: !5)
!25 = !DILocation(line: 3, column: 31, scope: !5)
!26 = !DILocation(line: 7, column: 29, scope: !27)
!27 = distinct !DILexicalBlock(scope: !5, file: !6, line: 4, column: 1)
!28 = !DILocation(line: 8, column: 29, scope: !27)
!29 = !DILocation(line: 9, column: 29, scope: !27)
!30 = !DILocation(line: 10, column: 29, scope: !27)
!31 = !DILocation(line: 11, column: 29, scope: !27)
!32 = !DILocation(line: 12, column: 29, scope: !27)
!33 = !DILocation(line: 13, column: 29, scope: !27)
!34 = !DILocation(line: 5, column: 5, scope: !27)
!35 = !DILocation(line: 4, column: 1, scope: !5)

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20160519/78c754ec/attachment-0001.html>


More information about the llvm-bugs mailing list