This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: GCC Making a new PASS


On Tue, Jun 12, 2012 at 8:34 AM, Satya Prakash Prasad
<satyaprakash.prasad@gmail.com> wrote:
> Thanks to all my issue got resolved.
>
> I placed the code in 'if block' checking cfun is NULL or not and
> removed gcc_assert. It worked fine for me.
>
> My idea is to print the lines of source code gcc is compiling. Further
> to that I want to update the statement with
>
> statement ; print("%s %d\n", __FILE__, __LINE__);
>
> So that when program is running I know which file which line of my
> program is getting executed. I tried printing statements in
> pass_remove_useless_stmts pass but I think these are internal GCC
> stages. I see statements of code like:
>
> if (D.3886 > 0)
> ?{
> ? ?D.3887 = obj->funcs;
> ? ?D.3888 = D.3887->close;
> ? ?D.3886 = obj->next_input;
> ? ?D.3888 (obj, D.3886);
> ?}
>
> So please let me know how can I achieve the objective and which pass
> should I make use of?

You probably want to modify the GENERIC representation, right before
gimplification.  Look for the gimplify_function_tree function.

Richard.

> Regards,
> Prakash
>
> On Tue, Jun 12, 2012 at 11:06 AM, Ian Lance Taylor <iant@google.com> wrote:
>> Satya Prakash Prasad <satyaprakash.prasad@gmail.com> writes:
>>
>>> But the compilation process fails further on:
>>>
>>> gcc/gcc-4.1.2/host-x86_64-unknown-linux-gnu/gcc/xgcc
>>> -Bgcc/gcc-4.1.2/host-x86_64-unknown-linux-gnu/gcc/
>>> -B/usr/local/x86_64-unknown-linux-gnu/bin/
>>> -B/usr/local/x86_64-unknown-linux-gnu/lib/ -isystem
>>> /usr/local/x86_64-unknown-linux-gnu/include -isystem
>>> /usr/local/x86_64-unknown-linux-gnu/sys-include -O2 ?-O2 -g -O2
>>> -DIN_GCC ? ?-W -Wall -Wwrite-strings -Wstrict-prototypes
>>> -Wmissing-prototypes -Wold-style-definition ?-isystem ./include ?-fPIC
>>> -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED ?-msse -c
>>> \
>>> ? ? ? ? ? ? ? ? ../.././gcc/config/i386/crtfastmath.c \
>>> ? ? ? ? ? ? ? ? -o crtfastmath.o
>>> ../.././gcc/config/i386/crtfastmath.c:110: internal compiler error:
>>> Segmentation fault
>>> Please submit a full bug report,
>>> with preprocessed source if appropriate.
>>> See <URL:http://gcc.gnu.org/bugs.html> for instructions.
>>> make[2]: *** [crtfastmath.o] Error 1
>>> make[2]: Leaving directory `gcc/gcc-4.1.2/host-x86_64-unknown-linux-gnu/gcc'
>>> make[1]: *** [all-gcc] Error 2
>>> make[1]: Leaving directory `gcc/gcc-4.1.2'
>>> make: *** [all] Error 2
>>> gcc/gcc-4.1.2 1223>
>>>
>>> Any help – why the issue is occurring and how can I achieve the objective?
>>
>> The straightforward approach will be to pull out the debugger and see
>> what is going on when the compiler crashes. ?It may help to look at
>> http://gcc.gnu.org/wiki/DebuggingGCC .
>>
>> Ian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]