[llvm-dev] Where is the code that is called when clang calls the job which generates IR?

Jatin Bhateja via llvm-dev llvm-dev at lists.llvm.org
Mon Jul 9 11:08:31 PDT 2018


Look for code in clang/lib/CodeGen/

Easy starting point could be

void CodeGenFunction::EmitFunctionBody;

Cheers

On Thu, Jul 5, 2018 at 7:55 PM, Rob bor78 via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> Where is the source code that is called when the clang binary executable
> calls the command/job which compiles C code to IR?
>
> I am using Clang as a library (basically a simplified version of the main
> function in /tools/clang/tools/driver/driver.cpp).
>
> My program creates an instance of clang::driver::Driver. I pass arguments
> to TheDriver.BuildCompilation(args)). And then call ExecuteCompilation.
> Everything works.
>
> When I call TheDriver.PrintActions(*C) the output is
>
> 0: input, "testcode.cpp", c++
> 1: preprocessor, {0}, c++-cpp-output
> 2: compiler, {1}, ir
> 3: backend, {2}, assembler
> 4: assembler, {3}, object
> 5: linker, {4}, image
>
> And when I loop over the jobs inside the Compilation object I see that the
> clang binary executable is called 4 times (using execve) and finally ld.lld
> is called.
>
> I'm interested in the call to clang for "2: compiler, {1}, ir".
>
> Is /tools/clang/tools/driver/driver.cpp called again? It seems that the
> main function in driver.cpp eventually calls itself again. If not what is
> called, and where is the source code?
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180709/f1ef021f/attachment.html>


More information about the llvm-dev mailing list