I'm forwarding this question to llvmdev:
printing out a bunch of instructions. which reveals my new problem: when
i attempt a malloc in my own, it comes out like this:%reg216 = call int (...)* %malloc( ulong 8 ) ; <int> [#uses=1]
a call to malloc, not a malloc instruction. i don't know how to get the
information i need out of a call to malloc.
You need to #include <stdlib.h>. Try compiling with warnings on (-Wall
-W), and you should get diagnostics for problems like this.
when i replace 'malloc' in the code with 'alloca', i get
%reg107 = alloca ubyte, uint 8 ; <ubyte*> [#uses=1]
so everything is fine for alloca.
alloca doesn't require a prototype.
i thought if i ran the inline pass it might change a malloc call to a
malloc instruction, but it didn't. can you tell me what's up here?
No prototype = Not a known function... The inlining pass shouldn't touch
malloc instructions/calls. The malloc calls should be eliminated by a
pass "built into" the GCC frontend:
http://llvm.cs.uiuc.edu/doxygen/RaiseAllocations_8cpp-source.html
... but this only will work if there is a prototype for the function.
-Chris