[LLVMdev] inserting a fucntion call at the end of basic bloc

Nabila ABDESSAIED nabila.abdessaied at gmail.com
Tue Apr 26 05:13:49 PDT 2011

2011/4/26 Duncan Sands <baldrick at free.fr>

> Hi Nabila,
>         Now when i tried this pass an error says:
>>        Wrong type for attribute noalias
>>        tail call void @consume(i32 noalias 3, i32* @y) nounwind
>>    noalias is only for arguments of pointer type.  You probably meant it
>> to
>>    be on the second argument rather than the first.  I suggest you correct
>>    your code that adds the attribute.
>>    Ciao, Duncan.
>> no my fucntion is
>> void consume(int nb_into_bloc, int *nb_total)
>> the second is a pointer
>> here is how I pass the parameters
>>  Instruction* ii = i->getTerminator();
>>  const int n = cast <int> (i->size());
>>  ConstantInt* inValue = ConstantInt::get(Type::getInt32Ty(Context), n);
>>  std::vector<Value*> int32_16_params;
>>  int32_16_params.push_back(inValue);
>>  int32_16_params.push_back(gvar_int32_y);
>>  CallInst* int32_16 = CallInst::Create(func_consume,
>> int32_16_params.begin(),
>> int32_16_params.end(), "", ii);
> where did the "noalias" attribute and "tail call" (rather than "call") come
> from?  Are you setting these yourself or running some optimization pass
> after
> your pass?

i have written a module pass and i have compiled it and then
 opt -load /home/inspiron/PhdWork/llvm-2.8/Release/lib/Example.so -Example2
< hello.bc > /dev/null
i get the error message
Wrong type for attribute noalias
  tail call void @consume(i32 noalias 3, i32* @y) nounwind
Broken module found, compilation aborted!
0  libLLVM-2.8.so.1 0x019bc628
Stack dump:
0. Program arguments: opt -load
/home/inspiron/PhdWork/llvm-2.8/Release/lib/Example.so -Example2
1. Running pass 'Function Pass Manager' on module '<stdin>'.
2. Running pass 'Module Verifier' on function '@main'

> Ciao, Duncan.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110426/75547212/attachment.html>

More information about the llvm-dev mailing list