This is the mail archive of the gcc-patches@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] |
On Thu, Feb 16, 2012 at 7:26 PM, Aldy Hernandez<aldyh@redhat.com> wrote:On 02/16/12 12:04, Jakub Jelinek wrote:
On Thu, Feb 16, 2012 at 11:46:33AM -0600, Aldy Hernandez wrote:
#GOOD houston:/build/t2/gcc$ ./cc1 a.c -fgnu-tm -O0 -quiet -w In function 'asmfunc', inlined from 'f' at a.c:13:10: a.c:7:3: error: asm not allowed in 'transaction_safe' function
#BAD houston:/build/t2/gcc$ ./cc1 a.c -fgnu-tm -O1 -quiet -w a.c: In function 'f': a.c:7:3: error: asm not allowed in 'transaction_safe' function houston:/build/t2/gcc$
Even with -O1 -g ? With -g0 we prune BLOCKs, so the backtraces don't work well.
Well with -O1 -g the backtrace works for this particular error. But with -O2 -g, we trigger another error "asm not allowed in atomic transaction", and no amount of %K fiddling will get me a backtrace.
But even so, it doesn't seem right to expect users to get a correct error message only with -g, does it?
Well, you can't expect diagnostics to be perfect with inlining in place. But you can try improving things by looking at what blocks tree-ssa-live.c prunes.
Disabling early inlining for TM is a hack, I don't think you want to make people pay the optimizing penalty just because of asm diagnostics.
Attachment:
curr
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |