Thanks Michael ! That's a lot useful information I can learn from :)
On Thu, Oct 29, 2015 at 10:00 AM, Michael Ferguson <[email protected]> wrote: > Hi Hui - > > On 10/29/15, 12:12 AM, "Hui Zhang" <[email protected]> wrote: > > > > >I need to check the information of a specific AST node(a *BlockStmt) > >during the compilation, so I did: > > print print_view(block) > > > >in gdb, but I don't quite understand the tree-like information I got from > >that, any instructions ? > > I don't think we have a reference for it or anything like that, but > one thing that might help is to look through some simple programs > with --log. E.g. > chpl hello.chpl --log= > > will create a log directory with AST dumps for each module for each pass. > > > > > > >Besides, I found a bug in Chapel compiler, when I compiled a chapel code > >with forall loop inside, using llvm backend, instructions in the > >generated function "coforall_fn_chp" gets > > mapped to the wrong filename but correct line number. However this debug > >information came from the original AST node member variable called > >"astloc". Therefore, I'm wondering if anyone can help me point out where > >this astloc was initialized for each AST node > > ? > > The compiler generally uses a global variable for the file/line. > This variable is set with SET_LINENO and the file/line from it are > stored in each new AST node. > > If you have identified the AST node with the wrong line number, you > can get its id number (ast->id) and instruct the compiler to > call gdbShouldBreakHere when that id is created with --break-on-id. > It's possible that some code adding AST elements called > SET_LINENO with the wrong argument. > > See doc/developer/bestPractices/CompilerIRTricks.txt > and doc/developer/bestPractices/CompilerDebugging.txt > > > Cheers, > > -michael > > -- Best regards Hui Zhang
------------------------------------------------------------------------------
_______________________________________________ Chapel-developers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/chapel-developers
