[LLVMdev] Fetching the functions in C files

Eli Bendersky
Wed, 22 Oct 2014 00:33:11 -0000

On Tue, Oct 21, 2014 at 5:32 PM, Eli Bendersky <eliben at google.com>
wrote:

>
>
> On Tue, Oct 21, 2014 at 5:22 PM, Amiir H. Ashouri <
> amirhossein.ashouri at gmail.com> wrote:
>
>> Thanks Markus.
>>
>> Having llvm-as to turn the extracted function.bc file to .ll caused an
>> error saying:
>>
>>
> llvm-as is for converting bitcode (.bc) to readable LLVM IR (.ll)
> llvm-dis is for the other direction
>
>
I'm sorry, this is exactly reversed. Typo :)

llvm-dis is for .bc --> .ll
llvm-as is for .ll --> .bc


> Eli
>
>
>> *llvm-as-3.4: function_bc:1:1: error: expected top-level entity*
>>
>> *BC! #AI29bEBB2I (some more binary)*
>>
>> This error is just the same error that I received while using
>> llvm-extract on a .c file (not .bc or .ll).
>>
>>
>> Do I have to include other things in the command ? I mean generating a
>> function.ll without anything as header, Module ID, etc might be wrong.
>> right ?
>>
>>
>> -Amir
>>
>> On Tue, Oct 21, 2014 at 7:51 PM, Markus Timpl <tima0900 at
googlemail.com>
>> wrote:
>>
>>> You can use llvm-dis to turn .bc files into .ll files.
>>> Am 22.10.2014 01:44 schrieb "Amir H. Ashouri" <
>>> amirhossein.ashouri at gmail.com>:
>>>
>>> Thanks for the answer John.
>>>>
>>>> I checked the llvm-extract and it works, but my concern is if
the
>>>> output of the extract could be saved as .ll instead of .bc.
Sort of
>>>> human-readable format so that I can parse it. Otherwise, it is
better to
>>>> parse the foo.ll file right away instead of using the extract
tool.
>>>>
>>>> Please correct me if I am wrong.
>>>>
>>>> Thanks,
>>>>
>>>> -Amir
>>>>
>>>> On Tue, Oct 21, 2014 at 7:02 PM, John Criswell <jtcriswel at
gmail.com>
>>>> wrote:
>>>>
>>>>>  On 10/21/14, 5:27 PM, Amir H. Ashouri wrote:
>>>>>
>>>>> Hello Everyone,
>>>>>
>>>>>  Just subscribed to the mailing list.
>>>>>
>>>>>  I was wondering how I am going to fetch each functions of
a specific
>>>>> source code file (c/c++) using the LLVM framework. For
instance, I would
>>>>> like to apply certain passes using llvm-opt on certain
functions not the
>>>>> whole file.
>>>>>
>>>>>  I would appreciate any hints or idea leading me about the
starting
>>>>> point.
>>>>>
>>>>>
>>>>> You might be able to use the llvm-extract tool to pull out
the
>>>>> functions you want into a separate bitcode file and then
use opt to
>>>>> optimize them.  You'd then need to create a second
bitcode file that
>>>>> contains the remaining functions (using llvm-extract
again).  Finally,
>>>>> you'd take the optimized bitcode file and the bitcode
file containing the
>>>>> other functions and link them together using clang and
libLTO or the
>>>>> llvm-link tool.
>>>>>
>>>>> Regards,
>>>>>
>>>>> John Criswell
>>>>>
>>>>>
>>>>>  Regards,
>>>>>
>>>>>  -Amir
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> LLVM Developers mailing listLLVMdev at cs.uiuc.edu
http://llvm.cs.uiuc.eduhttp://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> John Criswell
>>>>> Assistant Professor
>>>>> Department of Computer Science, University of
Rochesterhttp://www.cs.rochester.edu/u/criswell
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> LLVM Developers mailing list
>>>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>>>
>>>>
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20141021/6947ff12/attachment.html>