C++: Letting compiler know asm block can call function that can throw?

Jan Hubicka hubicka@ucw.cz
Fri Mar 30 15:46:00 GMT 2012


> 
> Motion across hardreg sets/uses are not restricted.  And I would not expect
> an optimizing compiler to do that (it's your own fault to use hardregs in
> complex C code).

Well, the syscall sequence is an example of somehting that should be inlined
into arbitrary code w/o potential risk of ICEs.  But I guess if things works in
practice (as they seem), we don't need to worry much at the moment.  Most of
code movement we do is very simple. I don't see how to convince GCC to move
memcpy or division into the middle of a basic block containing the libcall
sequence.... Even when the basic block can be broken up with
-fno-call-exceptions at the asm statement by an EH edge...

Honza
> 
> Richard.



More information about the Gcc mailing list