[LLVMdev] one remaining CellSPU backend bug...

Scott Michel scooter.phd at gmail.com
Mon Oct 15 23:58:35 PDT 2007


Here's a working testcase:

; ModuleID = '/tmp/crtbegin.bc'
target datalayout =
"E-p:32:32:128-i1:8:128-i8:8:128-i16:16:128-i32:32:128-i64:32:128-f32:32:128-f64:64:128-v64:64:64-v128:128:128-a0:0:128-s0:128:128"
target triple = "spu"
@__dso_handle = hidden global i8* null, align 16                ; <i8**>
[#uses=0]
@__CTOR_LIST__ = internal global [1 x void ()*] [ void ()* inttoptr (i64
4294967295 to void ()*) ], section ".ctors", align 4               ; <[1 x
void ()*]*> [#uses=1]
@__DTOR_LIST__ = internal global [1 x void ()*] [ void ()* inttoptr (i64
4294967295 to void ()*) ], section ".dtors", align 4               ; <[1 x
void ()*]*> [#uses=2]
@__JCR_LIST__ = internal global [0 x i8*] zeroinitializer, section ".jcr",
align 4              ; <[0 x i8*]*> [#uses=2]
@completed.1936.b = internal global i1 false            ; <i1*> [#uses=2]
@p.1934 = internal global void ()** getelementptr ([1 x void ()*]*
@__DTOR_LIST__, i32 0, i32 1), align 16              ; <void ()***>
[#uses=3]
@llvm.used = appending global [2 x i8*] [ i8* bitcast ([1 x void ()*]*
@__CTOR_LIST__ to i8*), i8* bitcast (void ()* @frame_dummy to i8*) ],
section "llvm.metadata"                ; <[6 x i8*]*> [#uses=0]

define internal void @frame_dummy() {
entry:
        %tmp1 = load i8** getelementptr ([0 x i8*]* @__JCR_LIST__, i32 0,
i32 0), align 4               ; <i8*> [#uses=1]
        %tmp2 = icmp eq i8* %tmp1, null         ; <i1> [#uses=1]
        br i1 %tmp2, label %UnifiedReturnBlock, label %bb

bb:             ; preds = %entry
        %tmp5 = tail call void (i8*)* (void (i8*)*)* asm "", "=r,0"( void
(i8*)* @_Jv_RegisterClasses )         ; <void (i8*)*> [#uses=2]
        %tmp7 = icmp eq void (i8*)* %tmp5, null         ; <i1> [#uses=1]
        br i1 %tmp7, label %UnifiedReturnBlock, label %bb10

bb10:           ; preds = %bb
        tail call void %tmp5( i8* bitcast ([0 x i8*]* @__JCR_LIST__ to i8*)
)
        ret void

UnifiedReturnBlock:             ; preds = %bb, %entry
        ret void
}

declare extern_weak void @_Jv_RegisterClasses(i8*)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20071015/d235e7ec/attachment.html>


More information about the llvm-dev mailing list