This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Need to know how to debug "match.pd" file
- From: Martin Liška <mliska at suse dot cz>
- To: bala mani <bsmanibgl at gmail dot com>, gcc at gnu dot org
- Date: Mon, 19 Nov 2018 11:11:33 +0100
- Subject: Re: Need to know how to debug "match.pd" file
- References: <CAAcfcW3L4fzcaZTvFYNRHnH5bpJg-uJvoMiRGNSLjxSP=0zvfQ@mail.gmail.com>
On 11/19/18 8:18 AM, bala mani wrote:
> Hi,
>
>
>
> I am looking at this issue:
>
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86628
Hi.
Good!
>
>
>
> For this issue, i want to debug "match.pd". I am a beginner for GCC. Could
> you please guide me how to debug this file?
So as you probably know, there are patterns defined in match.pd. Then we generate
objdir/gcc/gimple-match.c and objdir/gcc/generic-match.c files out of it.
If you know which pattern you want to debug, you can find a directive line
in the generated files, e.g. :
...
static bool
gimple_simplify_FLOOR_DIV_EXPR (gimple_match_op *res_op, gimple_seq *seq,
tree (*valueize)(tree) ATTRIBUTE_UNUSED,
code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
if (integer_onep (op1))
{
{
/* #line 252 "../../gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { op0 };
if (gimple_simplify_42 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR))
return true;
}
}
if (integer_zerop (op0))
...
as seen, 'line 252' comes from match.pd:252:
/* X * 1, X / 1 -> X. */
(for op (mult trunc_div ceil_div floor_div round_div exact_div)
(simplify
(op @0 integer_onep)
(non_lvalue @0)))
So you can either put a breakpoint on a line in generated files, or you can also
put a breakpoint on match.pd:252, as it's annotated in the generated file.
There's a nice tutorial how to debug GCC:
https://dmalcolm.fedorapeople.org/gcc/newbies-guide/debugging.html
Martin
>
>
>
> Thanks,
>
> Bala
>