> On Jul 3, 2018, at 11:48 AM, Richard Biener <richard.guent...@gmail.com> 
> wrote:
> 
> On July 3, 2018 6:01:19 PM GMT+02:00, Qing Zhao <qing.z...@oracle.com 
> <mailto:qing.z...@oracle.com>> wrote:
>> Hi,
>> 
>> In order to collect complete information on all the inlining
>> transformation that GCC applies on a given program,
>> I searched online, and found that the option -fopt-info-inline might be
>> the right option to use:
>> 
>> https://gcc.gnu.org/onlinedocs/gcc/Developer-Options.html 
>> <https://gcc.gnu.org/onlinedocs/gcc/Developer-Options.html>
>> <https://gcc.gnu.org/onlinedocs/gcc/Developer-Options.html 
>> <https://gcc.gnu.org/onlinedocs/gcc/Developer-Options.html>>
>> 
>> in which, it mentioned:
>> 
>> "As another example,
>> gcc -O3 -fopt-info-inline-optimized-missed=inline.txt
>> outputs information about missed optimizations as well as optimized
>> locations from all the inlining passes into inline.txt. 
>> 
>> “
>> 
>> Then I checked a very small testcase with GCC9 as following:
>> 
>> [qinzhao@localhost inline_report]$ cat inline_1.c
>> static int foo (int a)
>> {
>> return a + 10;
>> }
>> 
>> static int bar (int b)
>> {
>> return b - 20;
>> }
>> 
>> static int boo (int a, int b)
>> {
>> return foo (a) + bar (b);
>> }
>> 
>> extern int v_a, v_b;
>> extern int result;
>> 
>> int compute ()
>> {
>> result = boo (v_a, v_b);
>> return result; 
>> }
>> 
>> [qinzhao@localhost inline_report]$ /home/qinzhao/Install/latest/bin/gcc
>> -O3 -fopt-info-inline-optimized-missed=inline.txt inline_1.c -S
>> [qinzhao@localhost inline_report]$ ls -l inline.txt
>> -rw-rw-r--. 1 qinzhao qinzhao 0 Jul  3 11:25 inline.txt
>> [qinzhao@localhost inline_report]$ cat inline_1.s
>>      .file   "inline_1.c"
>>      .text
>>      .p2align 4,,15
>>      .globl  compute
>>      .type   compute, @function
>> compute:
>> .LFB3:
>>      .cfi_startproc
>>      movl    v_a(%rip), %edx
>>      movl    v_b(%rip), %eax
>>      leal    -10(%rdx,%rax), %eax
>>      movl    %eax, result(%rip)
>>      ret
>>      .cfi_endproc
>> .LFE3:
>>      .size   compute, .-compute
>>      .ident  "GCC: (GNU) 9.0.0 20180702 (experimental)"
>>      .section        .note.GNU-stack,"",@progbits
>> 
>> From the above, we can see:
>> 1. the call chains to —>“boo”->”foo”, “bar” in the routine “compute”
>> are completely inlined into “compute”;
>> 2. However, there is NO any inline information is dumped into
>> “inline.txt”.
>> 
>> 
>> So, My questions are:
>> 
>> 1. Is the option -fopt-info-inline  the right option to use to get the
>> complete inlining transformation info from GCC?
>> 2. is this a bug that the current -fopt-info-inline cannot dump
>> anything for this testing case?
> 
> I think the early inliner doesn't use opt-info yet. 

so, shall we add the opt-info support to early inliner?

Qing
> 
> Richard. 
> 
>> 
>> Thanks a lot for your help.
>> 
>> Qing

Reply via email to