[LLVMdev] A problem on returning value for functions

杨勇勇 triple.yang at gmail.com
Tue Jul 9 04:56:10 PDT 2013


I write a backend and come cross an abnormal problem. Here I give a example
to describe it:

// A simple C function
int  foo()
  return 1234;

When compiling foo() into my target ISA, I would expect codes like:

movi  r0, #1234  // prepare r0 to return value 1234.
ret     // return to caller.

The headache is when I pass option -O0 to llc, the generated codes are
correct. However, if I omit -O0 and use default compiling options, the
instruction "movi  r0, #1234" does not show.

I have already checked DAGs using options -view-xxxxx-dags and they all
seem OK.

I do not have any clue right now. Please help me.

Thank you.

杨勇勇 (Yang Yong-Yong)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130709/a42f9ee2/attachment.html>

More information about the llvm-dev mailing list