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 target/18841] New: setjmp and eh receivers can mis-schedule


The problem can be seen in the ev67 failure of 23_containers/vector/cons/4.cc,

        ldah $29,0($26)         !gpdisp!18
        ldq $3,_ZN10__gnu_test10destructor8_M_countE($29)               !literal
        ldq $2,16($9)
        mov $16,$10
        lda $29,0($29)          !gpdisp!18

Note the second instruction uses $29 before it is completely initialized in
the last instruction.

The problem is due to exposing the EH receiver gp load before sched1, but not
exposing the symbol gp use until after reload.  By inspection, the same problem
exists for the builtin_setjmp_receiver patterns, though there is no known test
case.  Presumably it wouldn't be impossible to write one.

By inspection, this problem should exist at least back through 3.3 branch.  I
havn't tried to create a simplified test case with which to show the problem
on that branch.

-- 
           Summary: setjmp and eh receivers can mis-schedule
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: target
        AssignedTo: rth at gcc dot gnu dot org
        ReportedBy: rth at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org
GCC target triplet: alpha


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


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