Closed Bug 1689641 Opened 4 years ago Closed 4 years ago

Possible clang-12 miscompilation in CacheRegisterAllocator::allocateValueRegister

Categories

(Core :: JavaScript Engine: JIT, defect)

defect

Tracking

()

RESOLVED FIXED
87 Branch
Tracking Status
firefox87 --- fixed

People

(Reporter: away, Assigned: away)

Details

Attachments

(1 file)

No description provided.

Some time ago a change landed in clang trunk that resulted in reg1 and reg2 not getting saved to the right places on the (caller's, since this was inlined) stack. At the time I ran a bisect to find the specific change in LLVM and talked to the developer, but we couldn't find anything wrong with that change itself. It is likely that the change only exposed pre-existing problems, which I never managed to track down. But preventing inline on allocateValueRegister has consistently prevented the problem.

We only need this on win32 under clang-12, so I'm open to further scoping down the ifdefs if requested.

Pushed by dmajor@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/60d545447cf7
Work around a potential clang-12 miscompilation in CacheRegisterAllocator::allocateValueRegister r=jandem
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 87 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: