This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug optimization/8883] Alpha: regalloc too eager to use FP regs on EV6
- From: "falk at debian dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 17 Nov 2003 15:50:40 -0000
- Subject: [Bug optimization/8883] Alpha: regalloc too eager to use FP regs on EV6
- References: <20021209144600.8883.falk.hueffner@student.uni-tuebingen.de>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From falk at debian dot org 2003-11-17 15:50 -------
I have a smaller test case which also exhibits this problem:
int f(int x) {
asm("nop" : : : "$16", "$0");
return x;
}
$16 is the input arg, $0 is the return value.
This compiles with tree-ssa and -fnew-ra to:
itoft a0,$f10
nop
ftoit $f10,v0
i. e. the argument is spilt to a floating point register.
I've added Michael Matz to the Cc in the hope that he can answer the question:
Why does the allocator choose a floating point reg even though
REGISTER_MOVE_COST(int, int) is 2 and REGISTER_MOVE_COST(int, float) is 3?
Is this a problem in the allocator, or is the Alpha backend presenting
the information in a bad way?
--
What |Removed |Added
----------------------------------------------------------------------------
CC| |matz at suse dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8883