LLVM Bugzilla is read-only and represents the historical archive of all LLVM issues filled before November 26, 2021. Use github to submit LLVM bugs

Bug 566 - Memory Mapped I/O Intrinsics do not fence memory
Summary: Memory Mapped I/O Intrinsics do not fence memory
Status: RESOLVED WONTFIX
Alias: None
Product: libraries
Classification: Unclassified
Component: Backend: X86 (show other bugs)
Version: 1.5
Hardware: PC Linux
: P normal
Assignee: Unassigned LLVM Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-05-18 10:29 PDT by John T. Criswell
Modified: 2010-03-06 14:00 PST (History)
1 user (show)

See Also:
Fixed By Commit(s):


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description John T. Criswell 2005-05-18 10:29:51 PDT
According to the design in the language reference manual, the LLVM readio and
writeio intrinsics should strongly order I/O memory accesses.

However, the current implementation lowers these intrinsics to volatile loads
and stores on ix86.  These loads and stores may or may not be properly ordered,
depending on the processor on which they run.

The correct solution is not obvious.  Certain fencing instructions are not found
on older Pentium processors, and we will need a general fencing model for SMP
systems anyway.  Such a design has not been discussed, though, as far as I know.
Comment 1 Chris Lattner 2006-03-02 18:17:28 PST
This bug is obsolete.