[Bug tree-optimization/55923] New: tree passes pessimize complex load/store operations

amylaar at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Jan 9 18:21:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55923

             Bug #: 55923
           Summary: tree passes pessimize complex load/store operations
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Keywords: missed-optimization
          Severity: normal
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: amylaar@gcc.gnu.org
            Target: epiphany-elf


Created attachment 29130
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29130
preprocessed test case

The Epiphany can do aligned 64 bit loads/stores just fine, and do that
with post-increment / modify too, so one ldrd and one strd instruction
(each 64 bit) with post-increment would be sufficient to do the loads / stores
in the inner loop of the testcase.
But because the tree optimizers think they know best how to handle complex
values, we end up with three address computation instructions, two loads, and
two stores (each 32 bit).



More information about the Gcc-bugs mailing list