Building Julia (master at RC0) broken on Mac

209 views
Skip to first unread message

Scott Jones

unread,
Jul 26, 2016, 8:27:30 PM7/26/16
to julia-dev
Has anybody else run into this yet?  I did a "make clean ; make", and got this:

...

   LINK usr/lib/libjulia.0.5.0.dylib

    CC ui/repl.o

    LINK usr/bin/julia

    PERL base/pcre_h.jl

    PERL base/errno_h.jl

    PERL base/build_h.jl.phony

    PERL base/fenv_constants.jl

    PERL base/file_constants.jl

    PERL base/uv_constants.jl

    PERL base/version_git.jl.phony

Copying in usr/share/doc/julia/examples

    JULIA usr/lib/julia/inference.ji

; ModuleID = 'Typeof'

target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"

target triple = "x86_64-apple-darwin15.6.0"


%jl_value_t = type { %jl_value_t* }


@"*Main.Core.Type1" = external global %jl_value_t*

@"+Type2" = external global %jl_value_t*

@"+Bool3" = external global %jl_value_t*

@_j_str0 = external unnamed_addr constant [7 x i8]

@_j_str1 = external unnamed_addr constant [3 x i8]

@jl_false = external constant %jl_value_t*

@jl_get_ptls_states.ptr = external global %jl_value_t*** ()*


define %jl_value_t* @julia_Typeof_0(%jl_value_t*, %jl_value_t**, i32) #0 {

top:

  %3 = alloca %jl_value_t**, align 8

  call void @llvm.dbg.value(metadata %jl_value_t** %1, i64 0, metadata !18, metadata !19), !dbg !20

  store volatile %jl_value_t** %1, %jl_value_t*** %3, align 8

  %4 = load %jl_value_t*** ()*, %jl_value_t*** ()** @jl_get_ptls_states.ptr, align 8

  %5 = call %jl_value_t*** %4() #1

  %6 = alloca [5 x %jl_value_t*], align 8

  %.sub1 = bitcast [5 x %jl_value_t*]* %6 to %jl_value_t**

  %7 = getelementptr [5 x %jl_value_t*], [5 x %jl_value_t*]* %6, i64 0, i64 3

  %8 = getelementptr [5 x %jl_value_t*], [5 x %jl_value_t*]* %6, i64 0, i64 2

  %9 = bitcast %jl_value_t** %7 to i8*

  call void @llvm.memset.p0i8.i32(i8* %9, i8 0, i32 16, i32 8, i1 false)

  %10 = bitcast [5 x %jl_value_t*]* %6 to i64*

  store i64 6, i64* %10, align 8

  %11 = bitcast %jl_value_t*** %5 to i64*

  %12 = load i64, i64* %11, align 8

  %13 = getelementptr [5 x %jl_value_t*], [5 x %jl_value_t*]* %6, i64 0, i64 1

  %14 = bitcast %jl_value_t** %13 to i64*

  store i64 %12, i64* %14, align 8

  store %jl_value_t** %.sub1, %jl_value_t*** %5, align 8

  store %jl_value_t* null, %jl_value_t** %8, align 8

  %15 = getelementptr [5 x %jl_value_t*], [5 x %jl_value_t*]* %6, i64 0, i64 4

  %16 = load %jl_value_t*, %jl_value_t** %1, align 8

  store %jl_value_t* %16, %jl_value_t** %7, align 8, !dbg !20

  %17 = load i64, i64* bitcast (%jl_value_t** @"+Type2" to i64*), align 8, !dbg !20, !tbaa !21

  %18 = bitcast %jl_value_t** %15 to i64*, !dbg !20

  store i64 %17, i64* %18, align 8, !dbg !20

  %19 = call %jl_value_t* @jl_f_isa(%jl_value_t* null, %jl_value_t** %7, i32 2), !dbg !20

  store %jl_value_t* %19, %jl_value_t** %8, align 8, !dbg !20

  %20 = getelementptr inbounds %jl_value_t, %jl_value_t* %19, i64 -1, i32 0, !dbg !20

  %21 = bitcast %jl_value_t** %20 to i64*, !dbg !20

  %22 = load i64, i64* %21, align 8, !dbg !20, !tbaa !23

  %23 = and i64 %22, -16, !dbg !20

  %24 = inttoptr i64 %23 to %jl_value_t*, !dbg !20

  %25 = load %jl_value_t*, %jl_value_t** @"+Bool3", align 8, !dbg !20, !tbaa !21

  %26 = icmp eq %jl_value_t* %24, %25, !dbg !20

  br i1 %26, label %pass, label %fail, !dbg !20


L:                                                ; preds = %pass

  %27 = bitcast %jl_value_t*** %5 to i64*

  %28 = getelementptr inbounds %jl_value_t, %jl_value_t* %16, i64 -1, i32 0, !dbg !20

  %29 = bitcast %jl_value_t** %28 to i64*, !dbg !20

  %30 = load i64, i64* %29, align 8, !dbg !20, !tbaa !23

  %31 = and i64 %30, -16, !dbg !20

  %32 = inttoptr i64 %31 to %jl_value_t*, !dbg !20

  %sunkaddr = ptrtoint [5 x %jl_value_t*]* %6 to i64, !dbg !20

  %sunkaddr2 = add i64 %sunkaddr, 8, !dbg !20

  %sunkaddr3 = inttoptr i64 %sunkaddr2 to i64*, !dbg !20

  %33 = load i64, i64* %sunkaddr3, align 8, !dbg !20

  store i64 %33, i64* %27, align 8, !dbg !20

  ret %jl_value_t* %32, !dbg !20


if:                                               ; preds = %pass

  %34 = bitcast %jl_value_t*** %5 to i64*

  %sunkaddr4 = ptrtoint [5 x %jl_value_t*]* %6 to i64, !dbg !20

  %sunkaddr5 = add i64 %sunkaddr4, 24, !dbg !20

  %sunkaddr6 = inttoptr i64 %sunkaddr5 to i64*, !dbg !20

  store i64 %17, i64* %sunkaddr6, align 8, !dbg !20

  %sunkaddr7 = ptrtoint [5 x %jl_value_t*]* %6 to i64, !dbg !20

  %sunkaddr8 = add i64 %sunkaddr7, 32, !dbg !20

  %sunkaddr9 = inttoptr i64 %sunkaddr8 to %jl_value_t**, !dbg !20

  store %jl_value_t* %16, %jl_value_t** %sunkaddr9, align 8, !dbg !20

  %35 = call %jl_value_t* @jl_f_apply_type(%jl_value_t* null, %jl_value_t** %7, i32 2), !dbg !20

  %sunkaddr10 = ptrtoint [5 x %jl_value_t*]* %6 to i64, !dbg !20

  %sunkaddr11 = add i64 %sunkaddr10, 8, !dbg !20

  %sunkaddr12 = inttoptr i64 %sunkaddr11 to i64*, !dbg !20

  %36 = load i64, i64* %sunkaddr12, align 8, !dbg !20

  store i64 %36, i64* %34, align 8, !dbg !20

  ret %jl_value_t* %35, !dbg !20


fail:                                             ; preds = %top

  call void @jl_type_error_rt(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @_j_str0, i64 0, i64 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @_j_str1, i64 0, i64 0), %jl_value_t* %25, %jl_value_t* %19), !dbg !20

  unreachable, !dbg !20


pass:                                             ; preds = %top

  %37 = load %jl_value_t*, %jl_value_t** @jl_false, align 8, !dbg !20, !tbaa !21

  %38 = icmp eq %jl_value_t* %19, %37, !dbg !20

  br i1 %38, label %L, label %if, !dbg !20

}


declare %jl_value_t*** @jl_get_ptls_states()


; Function Attrs: nounwind readnone

declare void @llvm.dbg.declare(metadata, metadata, metadata) #1


declare %jl_value_t* @jl_f_isa(%jl_value_t*, %jl_value_t**, i32)


; Function Attrs: noreturn

declare void @jl_type_error_rt(i8*, i8*, %jl_value_t*, %jl_value_t*) #2


declare %jl_value_t* @jl_f_apply_type(%jl_value_t*, %jl_value_t**, i32)


; Function Attrs: nounwind

declare void @llvm.memset.p0i8.i32(i8* nocapture, i8, i32, i32, i1) #3


; Function Attrs: nounwind readnone

declare void @llvm.dbg.value(metadata, i64, metadata, metadata) #1


attributes #0 = { "no-frame-pointer-elim"="true" }

attributes #1 = { nounwind readnone }

attributes #2 = { noreturn }

attributes #3 = { nounwind }


!llvm.module.flags = !{!0, !1}

!llvm.dbg.cu = !{!2}


!0 = !{i32 2, !"Dwarf Version", i32 2}

!1 = !{i32 1, !"Debug Info Version", i32 3}

!2 = distinct !DICompileUnit(language: DW_LANG_C89, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: 1, enums: !4, subprograms: !5)

!3 = !DIFile(filename: "boot.jl", directory: ".")

!4 = !{}

!5 = !{!6}

!6 = !DISubprogram(name: "Typeof", linkageName: "julia_Typeof_0", scope: null, file: !3, type: !7, isLocal: false, isDefinition: true, isOptimized: true, function: %jl_value_t* (%jl_value_t*, %jl_value_t**, i32)* @julia_Typeof_0, variables: !15)

!7 = !DISubroutineType(types: !8)

!8 = !{!9, !9, !13, !14}

!9 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !10, size: 64, align: 64)

!10 = !DICompositeType(tag: DW_TAG_structure_type, name: "jl_value_t", file: !11, line: 71, align: 64, elements: !12)

!11 = !DIFile(filename: "julia.h", directory: "")

!12 = !{!9}

!13 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !9, size: 64, align: 64)

!14 = !DIBasicType(name: "Int32", size: 32, align: 32, encoding: DW_ATE_unsigned)

!15 = !{!16, !18}

!16 = !DILocalVariable(tag: DW_TAG_arg_variable, name: "f", arg: 1, scope: !6, file: !3, line: 186, type: !17)

!17 = !DICompositeType(tag: DW_TAG_structure_type, name: "#Typeof", align: 8, elements: !4, runtimeLang: DW_LANG_Julia)

!18 = !DILocalVariable(tag: DW_TAG_arg_variable, name: "x", arg: 2, scope: !6, file: !3, line: 186, type: !9)

!19 = !DIExpression(DW_OP_deref, DW_OP_plus, 0)

!20 = !DILocation(line: 186, scope: !6)

!21 = !{!"jtbaa_const", !22, i64 1}

!22 = !{!"jtbaa"}

!23 = !{!"jtbaa_tag", !24}

!24 = !{!"jtbaa_data", !22}

LLVM ERROR: FATAL: Unable to compile LLVM Module.

The module's content was printed above. Please file a bug report

make[1]: *** [/j/julia/usr/lib/julia/inference.ji] Error 1

make: *** [julia-inference] Error 2

✘-2 /j/julia [master|…3⚑ 1


Jeff Bezanson

unread,
Jul 26, 2016, 11:25:56 PM7/26/16
to juli...@googlegroups.com
The LLVM patches have been shuffled around a bit. I needed to do a
`make distclean-llvm` in deps.

Scott Jones

unread,
Jul 27, 2016, 3:30:56 AM7/27/16
to julia-dev
Thanks!  That worked!
Reply all
Reply to author
Forward
0 new messages