This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug debug/51695] [4.7 Regression] ICE while compiling argyllcms package
- From: "jakub at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 04 Jan 2012 11:25:57 +0000
- Subject: [Bug debug/51695] [4.7 Regression] ICE while compiling argyllcms package
- Auto-submitted: auto-generated
- References: <bug-51695-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51695
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jan.kratochvil at redhat
| |dot com
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-01-04 11:25:57 UTC ---
One problem with such temporaries approach would be that if the temporaries are
in the whole expression evaluated only conditionally, they could have unwanted
side-effects (reading uninitialized memory, division by zero, producing NaNs
etc.) that the debugger might complain about loudly.
Say if the expression is (if_then_else (r1 < 56) (temp1) (const_int 0))
where temp1 is (mem (foo + r1)) or similar, if we evaluate it upfront, the
debugger might complain.
Another alternative would be (for a dwarf2out.c solution, so the compile time
memory issue would be still there) when we'd be finalizing all the DWARF
expressions in the CU, we'd somehow hash the larger subexpressions where it
might be beneficial and if they are long enough and occur at least twice,
create a DW_TAG_dwarf_procedure for them and just replace those subexpressions
with DW_OP_call* to that procedure.