Finish up PR rtl-optimization/44194

Eric Botcazou ebotcazou@adacore.com
Thu Sep 13 16:08:00 GMT 2012


> Will it help
> 
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54315
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28831

It won't help everywhere, since it's only for architectures that return 
structures in registers, so x86-64 but not x86 for example.

54315 pertains to single-fielded unions and uses a different code path 
(copy_blkmode_from_reg) although the issue is similar.  I'll have a look.

It will help 28831 on x86-64 if the structure is returned in registers, e.g.

struct val_t {
  int a, b, c;
};

extern struct val_t foo();
extern int bar(struct val_t);
int main() {
    return bar(foo());
}

The patch eliminates the two extra stores mentioned in comment #15.  I'll add a 
reference to this one.

-- 
Eric Botcazou



More information about the Gcc-patches mailing list