Thanks Todd for this additional information. I'll definitely check this once I'm done with porting Impala successfully.
Thanks again. Nishidha From: Todd Lipcon <[email protected]> To: Nishidha Panpaliya/Austin/Contr/IBM@IBMUS Cc: [email protected], nishidha panpaliya <[email protected]>, Silvius Rus <[email protected]>, Sudarshan Jagadale/Austin/Contr/IBM@IBMUS Date: 02/19/2016 02:08 AM Subject: Re: Passing DataLayout to Module/Function Pass Manager of LLVM On Thu, Feb 18, 2016 at 5:16 AM, Nishidha Panpaliya <[email protected]> wrote: Hi Todd, Thanks a lot. This really helped me. So, in case I can simply ignore module->setDataLayout(...) as it is already set in it once. In my case, with LLVM 3.3, datalayout was added as Pass to ModulePassManager and FunctionPassManager, which now is not needed, as it is already set in the module object being used by these passmanagers. Please confirm my understanding. Also, it seems in your module_builder.cc, you are continuing using PassManagers which are made as legacy now in LLVM 3.7. I hope it is okay to use those legacy PassManagers instead of new PassManagers in IR/PassManager.h. I haven't followed this API change closely -- I didn't realize that PassManagers are legacy now. It seems like our codegen is working, though :) One thing to be aware of is that some inlining heuristics or thresholds changed with our upgrade. We had to do some patches to get the generated code back to the original performance. So, make sure you benchmark carefully and/or inspect the generated machine code for unwanted call instructions. (in the Kudu code we have a -codegen_dump_mc flag to allow dumping the asm, not sure if Impala has the same) -Todd Inactive hide details for Todd Lipcon ---02/17/2016 11:45:53 PM---Regarding the DataLayout question, here's how we handle it wiTodd Lipcon ---02/17/2016 11:45:53 PM---Regarding the DataLayout question, here's how we handle it with LLVM 3.7 in Kudu: From: Todd Lipcon <[email protected]> To: [email protected] Cc: Silvius Rus <[email protected]>, nishidha panpaliya < [email protected]>, Nishidha Panpaliya/Austin/Contr/IBM@IBMUS, Sudarshan Jagadale/Austin/Contr/IBM@IBMUS Date: 02/17/2016 11:45 PM Subject: Re: Passing DataLayout to Module/Function Pass Manager of LLVM Regarding the DataLayout question, here's how we handle it with LLVM 3.7 in Kudu: https://github.com/cloudera/kudu/blob/master/src/kudu/codegen/module_builder.cc#L267 You can see the diff in this mega commit: https://github.com/cloudera/kudu/commit/9806863e78107505a622b44112a897189d9b3c24 On Wed, Feb 17, 2016 at 10:08 AM, Henry Robinson <[email protected]> wrote: > (Moving this conversation to [email protected], > [email protected] to bcc:) > > On 17 February 2016 at 09:13, Silvius Rus <[email protected]> wrote: > >> Hey Nishidha, >> >> Would you be interested in contributing the changes you've made so far to >> the Impala ASF project? It's easier to get help in context if you post a >> patch for review. Upgrading to LLVM 3.7 would be beneficial to the project >> in general, so I think others will jump in to help. >> >> https://github.com/cloudera/Impala/wiki/Contributing-to-Impala >> >> Silvius >> >> On Wed, Feb 17, 2016 at 5:00 AM, nishidha panpaliya < [email protected]> >> wrote: >> >>> Alright Tim. Thanks for the reply. >>> >>> Regards, >>> Nishidha >>> >>> >>> On Tuesday, 16 February 2016 19:16:34 UTC+5:30, nishidha panpaliya wrote: >>>> >>>> Hello, >>>> >>>> In Impala source code, I've encountered a place in >>>> be/src/codegen/llvm-codegen.cc where DataLayout's pointer is passed to >>>> PassManager::addPass method. >>>> >>>> module_pass_manager->add(new DataLayout(data_layout_str)); >>>> fn_pass_manager->add(new DataLayout(data_layout_str)); >>>> >>>> >>>> *Note*: addPass method is also changed to add in LLVM 3.7. >>>> >>>> I wanted to understand what exactly these two lines are doing. What >>>> would be the impact if they are commented/removed? And if there is any test >>>> coverage for this? >>>> >>>> My rationale behind all these questions is to port Impala on ppc64le, >>>> I'd to upgrade LLVM 3.3 to 3.7. And in LLVM 3.7, DataLayout is not derived >>>> from class Pass and hence these lines do not compile with LLVM 3.7. So, I >>>> need to either find equivalent of this or have to remove. >>>> >>>> I'll be grateful to you if you could provide some insights here. >>>> >>>> Thanks in advance, >>>> Nishidha >>>> >>>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Impala Dev" group. >>> To unsubscribe from this group and stop receiving emails from it, send an >>> email to [email protected]. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Impala Dev" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> > > > > -- > Henry Robinson > Software Engineer > Cloudera > 415-994-6679 -- Todd Lipcon Software Engineer, Cloudera -- Todd Lipcon Software Engineer, Cloudera
