tra added inline comments.

================
Comment at: lib/Driver/Tools.cpp:10707
@@ +10706,3 @@
+    // ptxas does not accept -g option if optimization is enabled, so we ignore
+    // compiler's -O* options if we want debug info.
+    CmdArgs.push_back("-g");
----------------
hfinkel wrote:
> echristo wrote:
> > tra wrote:
> > > echristo wrote:
> > > > tra wrote:
> > > > > hfinkel wrote:
> > > > > > echristo wrote:
> > > > > > > jlebar wrote:
> > > > > > > > I think this is would be very surprising to users.  -g does not 
> > > > > > > > usually have a large performance impact, so -O2 -g does not 
> > > > > > > > generally mean "generate slow code," as far as I know.  I'm 
> > > > > > > > concerned that this will result in people accidentally 
> > > > > > > > compiling with ptxas -O0 (which is why I didn't do it like this 
> > > > > > > > to begin with).
> > > > > > > > 
> > > > > > > > Can we accomplish this in a more explicit way?
> > > > > > > Other than warning I'm not sure what we can do, we could do that 
> > > > > > > instead and make everyone use O0 that wants debug info in their 
> > > > > > > ptx?
> > > > > > I'd rather we refuse to do anything (i.e. produce an error) than 
> > > > > > silently remove either optimizations or -g. Do we have a way to 
> > > > > > separately specify the optimization level for host and device code? 
> > > > > > If not, looks like we should add one.
> > > > > NVCC has -G option to control ptxas' debug options. If it's present, 
> > > > > ptxas optimizations are disabled. I could add a similar option. 
> > > > > "-gcuda-device" perhaps?
> > > > > 
> > > > We can do that, I'd have warned because it doesn't seem like something 
> > > > we should hard error on, but I can see that perspective, i.e. we asked 
> > > > for "incompatible" options.
> > > > 
> > > > And no, we don't currently have a way to do that. We can try to come up 
> > > > with a driver interface.
> > > @hfinkel: separate option should work. Any suggestions for a good name? 
> > > -gcuda-device sounds awkward.
> > > 
> > > @echristo: "-O0" is not going to work for everyone in practice due to 
> > > ptxas limitations. For instance on some thrust files ptxas runs out of 
> > > memory on all non-inlined functions in unoptimized code. Compiling with 
> > > -O2 is one way to work around that, but I do want device-side debug info!
> > > 
> > Huh? I'm not sure what you're doing here then with turning off 
> > optimizations in the presence of debug info requests. Your commentary made 
> > it sound like you can't have both.
> > @hfinkel: separate option should work. Any suggestions for a good name? 
> > -gcuda-device sounds awkward.
> 
> I agree it sounds awkward, but I currently have no better suggestion.
@echristo: I assumed you were talking about compiler when you said "make 
everyone use O0". I need compiler to optimize code with -O2, but run ptxas with 
-g and -O0 which this patch makes possible.

I'll update the patch to add an option to control device-side debug info 
explicitly.



http://reviews.llvm.org/D17111



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to