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]

[PATCH, alpha]: Fix PR target/50001, ICE in reload_combine_note_use, at postreload.c:1538


Hello!

The problem was that exception_receiver pattern recorded a stack slot
that referred to virtual-stack-vars. Recent changes moved generation
of exception landing pads after virtuals were instantiated, so in
bbpart pass we emitted:

(insn 262 266 263 51 (unspec_volatile [
            (mem/c:DI (plus:DI (reg/f:DI 65 virtual-stack-vars)
                    (const_int 16 [0x10])) [0 S8 A64])
        ] UNSPECV_EHR) 278 {*exception_receiver_2}
     (nil))

Later passes choked on uninstantiated register.

Attached patch defines TARGET_INSTANTIATE_DECLS to also instantiate
registers in saved stack slot address.

2011-08-06  Uros Bizjak  <ubizjak@gmail.com>

	PR target/50001
	* config/alpha/alpha.c (alpha_instantiate_decls): New function.
	(TARGET_INSTANTIATE_DECLS): New define.

Patch was bootstrapped and regtested on alphaev68-pc-linux-gnu, where
fixes g++.dg/tree-prof/partition1.C ICEs in the testsuite.

Patch was committed to SVN mainline, will be also committed to release branches.

Uros.

Attachment: a.diff.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]