This is the mail archive of the gcc-bugs@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]

[Bug optimization/8883] Alpha: regalloc too eager to use FP regs on EV6


------- 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


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