Hi guys,<br><br>Thanks for the input. However, it seems that the code still produces the wrong output on a Sparc machine.<br><br>My current llvm_print.bc code is:<br>--------------------------------------------------------------------------------------------------<br>

; MduleID = '<stdin>'<br>target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-n32"<br>target triple = "sparc-unknown-linux"<br><br>
@P = global i32 1<br>
@dP = global i32 1<br><br>@.str = private constant [4 x i8] c"%d\0A\00", align 1<br><br>define i32 @main() nounwind {<br><br>entry:<br>    %. = load i32* @P, align 4<br>    %t1 = tail call i32 (i8*, ...)* @printf(i8* noalias getelementptr inbounds ([4 x i8]* @.str, i32 0, i32 0), i32 %. ) nounwind<br>

    %d. = load i32* @dP, align 4    <br>    %t2 = tail call i32 (i8*, ...)* @printf(i8* noalias getelementptr inbounds ([4 x i8]* @.str, i32 0, i32 0), i32 %d. ) nounwind<br>    %0 = icmp sgt i32 %., 0<br>  %1 = tail call i32 (i8*, ...)* @printf(i8* noalias getelementptr inbounds ([4 x i8]* @.str, i32 0, i32 0), i1 %0 ) nounwind<br>

    %2 = icmp sgt i32 %d., 0<br>    %3 = tail call i32 (i8*, ...)* @printf(i8* noalias getelementptr inbounds ([4 x i8]* @.str, i32 0, i32 0), i1 %2 ) nounwind<br>    %t3 = icmp eq i32 %d., %d.<br>    %t4 = tail call i32 (i8*, ...)* @printf(i8* noalias getelementptr inbounds ([4 x i8]* @.str, i32 0, i32 0), i1 %t3 ) nounwind<br>

    %4 = icmp sgt i32 1, 0<br>    %5 = icmp sgt i32 1, 0<br>    %6 = tail call i32 (i8*, ...)* @printf(i8* noalias getelementptr inbounds ([4 x i8]* @.str, i32 0, i32 0), i1 %4 ) nounwind<br>    %7 = tail call i32 (i8*, ...)* @printf(i8* noalias getelementptr inbounds ([4 x i8]* @.str, i32 0, i32 0), i1 %5 ) nounwind<br>

  ret i32 undef<br>}<br><br>declare i32 @printf(i8* nocapture, ...) nounwind<br><br>--------------------------------------------------------------------------------------------------<br><br>The output is still:<br><br>1<br>

1<br>0<br>0<br>1<br>1<br>1<br><br>which should be all ones. Is there a sign error somewhere? <br><br>Thanks a lot!<br><br>Christine<br><br><br><div class="gmail_quote">On Thu, Sep 15, 2011 at 11:28 AM, Bruno Cardoso Lopes <span dir="ltr"><<a href="mailto:bruno.cardoso@gmail.com">bruno.cardoso@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">On Thu, Sep 15, 2011 at 11:06 AM, Christine Cheng <<a href="mailto:clcheng@stanford.edu">clcheng@stanford.edu</a>> wrote:<br>


> Hi Duncan,<br>
><br>
> Thanks for the reply! There is no LLVM on the Sparc machine so I cannot<br>
> compile my code there into .s file. How shall I modify the target data<br>
> layout and triple so it works on Sparc? Basically I got these from compiling<br>
> C code using llvm-gcc.<br>
<br>
</div>You can use clang for that:<br>
clang -ccc-host-triple sparc-unknown-linux -ccc-clang-archs sparc ...<br>
<font color="#888888"><br>
<br>
--<br>
Bruno Cardoso Lopes<br>
<a href="http://www.brunocardoso.cc" target="_blank">http://www.brunocardoso.cc</a><br>
</font></blockquote></div><br>