[LLVMdev] hello world error

Ankit Sethia asethia at eecs.umich.edu
Wed Jun 29 08:12:00 PDT 2011


Hi All,

I am using llvm-2.9 to cross compile to alpha. I know that alpha is in
experimental stage, but i can not get even the "Hello World" program to run
on it.

Here is what happens, the bitcode file for the hello world program is as
follow:

; ModuleID = 'hello.bc'
target datalayout =
"e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
target triple = "x86_64-unknown-linux-gnu"

@.str = private constant [12 x i8] c"Hello World\00", align 1

define i32 @main() nounwind {
entry:
  %retval = alloca i32
  %0 = alloca i32
  %"alloca point" = bitcast i32 0 to i32
  *%1 = call i32 @puts(i8* getelementptr inbounds ([12 x i8]* @.str, i64 0,
i64 0)) nounwind*
  store i32 0, i32* %0, align 4
  %2 = load i32* %0, align 4
  store i32 %2, i32* %retval, align 4
  br label %return

return:                                           ; preds = %entry
  %retval1 = load i32* %retval
  ret i32 %retval1
}

declare i32 @puts(i8*)

The .str is present in the argument to the puts function in %1 is present in
the bitcode.
But when i use llc to change the bitcode to alpha assembly, i get the
following:


  ldah $29,0($27)   !gpdisp!1
  lda $29,0($29)    !gpdisp!1
  $main..ng:
  lda $30,-32($30)
  stq $9,24($30)
  stq $11,16($30)
  bis $26,$26,$9
*  ldq $27,puts($29) *  !literal
  lda $11,8($30)
  jsr $26,($27),0


The puts call is there, but register 16 which i believe is supposed to have
the arguments to a function call is not set.
If i manually add the line to the assembly,

  lda $16, $.str($29)

where $.str is defined in the assembly to be the appropriate string, it
works fine, and i get the hello world output.
It seems that for some reason llc is not setting the argument of the
function call.

Are there any tests for alpha assembly that presently work with function
call? I would like to confirm that something with alpha is working.




-- 
Ankit
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110629/6baea47a/attachment.html>


More information about the llvm-dev mailing list