[LLVMdev] passing args in registers, pointers vs integers

Jonas Paulsson jnspaulsson at gmail.com
Wed Sep 29 01:45:43 PDT 2010


Hi,

I need to pass pointer arguments and integer arguments in different
register classes, but fail to do this. I am surprised to see no
pointer type in the initial DAG and both these programs get arguments
of i16:

int fun(int a, int b) { return a+b;}

int funp(int *a, int *b) { return *a+*b;}

The arguments get the same MVT::i16, and as well - surprisingly - the
same ArgFlags.Flags for both programs. Thus I cannot make a
customization that is required. I suppose the Flags bitmap should
indicate this, why does it not?

How can I solve this problem?

/Jonas



More information about the llvm-dev mailing list