search for: memoryfence

Displaying 20 results from an estimated 20 matches for "memoryfence".

2009 May 29
0
[LLVMdev] RFC: Atomics.h
In the current trunk, System/Atomic.[h,cpp] define void llvm::sys::MemoryFence(). This conflicts with the MemoryFence macro in <windows.h> and (since it's a preprocessor macro, and not a scoped function definition) causes the sys::MemoryFence definition on Atomic.cpp:23 to explode, as it's nonsensically expanded to a cl intrinsic (_mm_mfence). This breaks the Vi...
2009 May 29
3
[LLVMdev] RFC: Atomics.h
On May 28, 2009, at 6:03 PM, Jonathan Ragan-Kelley wrote: > In the current trunk, System/Atomic.[h,cpp] define void > llvm::sys::MemoryFence(). This conflicts with the MemoryFence macro in > <windows.h> and (since it's a preprocessor macro, and not a scoped > function definition) causes the sys::MemoryFence definition on > Atomic.cpp:23 to explode, as it's nonsensically expanded to a cl > intrinsic (_mm_mfence)...
2009 May 17
2
[LLVMdev] RFC: Atomics.h
On May 17, 2009, at 12:32 PM, Chris Lattner wrote: > Owen, I would really rather that you didn't take this path. Threading > support in LLVM should always be optional: it should be possible to > use LLVM on systems where we don't have support for threading > operations. Indeed, some systems don't support threads! I'm not trying to make it required. I had provided
2009 Jun 02
2
[LLVMdev] RFC: Atomics.h
...actually the case? I can't find it documented anywhere on MSDN or the rest of the internet. --Owen On Jun 1, 2009, at 11:17 PM, Jonathan Ragan-Kelley wrote: > Yes, indeed. > > On May 28, 10:41 pm, Owen Anderson <resis... at mac.com> wrote: >> >> Wait, it defines MemoryFence() AND MemoryBarrier()?? >> >> Sheesh, they had to take all the reasonable names. :-/ > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/ll...
2009 Jun 02
0
[LLVMdev] RFC: Atomics.h
Owen Anderson wrote: > Is this actually the case? I can't find it documented anywhere on > MSDN or the rest of the internet. C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include>grep -n -F MemoryFence WinNT.h 2231:#define MemoryFence _mm_mfence C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include>grep -n -F MemoryBarrier WinNT.h 2288:#define MemoryBarrier __faststorefence 3362:MemoryBarrier ( 4890:#define MemoryBarrier __mf Also, I have absolutely no problem using MSDN search to...
2009 Sep 08
0
[LLVMdev] sys::MemoryFence() using __sync_synchronize() with GCC on ARM does not generate a memory fence
Andrew Haley brought up this interesting issue on the GCC mailing-list that directly affect the stability of the ARM llvm target when using multi-threading. http://gcc.gnu.org/ml/gcc-patches/2009-08/msg00600.html basically using __sync_synchronize() with GCC on ARM does not generate any code for the fence. For what I know: The only working fix for this issue on Linux would be to create a call to
2016 Apr 16
2
[TSAN] LLVM statistics and pass initialization trigger race detection
...does not please TSAN (even though it seems written with TSAN in mind): #define CALL_ONCE_INITIALIZATION(function) \ static volatile sys::cas_flag initialized = 0; \ sys::cas_flag old_val = sys::CompareAndSwap(&initialized, 1, 0); \ if (old_val == 0) { \ function(Registry); \ sys::MemoryFence(); \ TsanIgnoreWritesBegin(); \ TsanHappensBefore(&initialized); \ initialized = 2; \ TsanIgnoreWritesEnd(); \ } else { \ sys::cas_flag tmp = initialized; \ sys::MemoryFence(); \ while (tmp != 2) { \ tmp = initialized; \ sys::MemoryFence(); \ } \...
2015 Jun 11
2
[LLVMdev] Self compiling latest clang from SVN
...ted the technique of compiling with Microsoft C++ first, then using the resulting clang-cl.exe). It fails with a bunch of error messages along the lines of: LLVMSupport.lib(Atomic.obj) : error LNK2019: unresolved external symbol __faststorefence referenced in function "void __cdecl llvm::sys::MemoryFence(void)" (?MemoryFence at sys@llvm@@YAXXZ) [C:\llvm-svn\build\utils\FileCheck\FileCheck.vcxproj] LLVMSupport.lib(Host.obj) : error LNK2019: unresolved external symbol _xgetbv referenced in function "class llvm::StringRef __cdecl llvm::sys::getHostCPUName(void)" (?getHostCPUName at sys@...
2009 Jun 02
0
[LLVMdev] RFC: Atomics.h
Yes, indeed. On May 28, 10:41 pm, Owen Anderson <resis... at mac.com> wrote: > > Wait, it defines MemoryFence() AND MemoryBarrier()?? > > Sheesh, they had to take all the reasonable names.  :-/
2015 Jun 12
2
[LLVMdev] Self compiling latest clang from SVN
...;> first, then using the resulting clang-cl.exe). It fails with a bunch of >> error messages along the lines of: >> >> LLVMSupport.lib(Atomic.obj) : error LNK2019: unresolved external symbol >> __faststorefence referenced in function "void __cdecl >> llvm::sys::MemoryFence(void)" (?MemoryFence at sys@llvm@@YAXXZ) >> [C:\llvm-svn\build\utils\FileCheck\FileCheck.vcxproj] >> LLVMSupport.lib(Host.obj) : error LNK2019: unresolved external symbol >> _xgetbv referenced in function "class llvm::StringRef __cdecl >> llvm::sys::getHostCPUName(...
2018 Nov 15
2
[cfe-dev] "devirtualizing" files in the VFS
> On Nov 15, 2018, at 3:34 AM, Whisperity <whisperity at gmail.com> wrote: > > I am really not sure if adding real file system functionality strictly into the VFS is a good approach. This "ExternalFileSystem" thing sounds weird to me. The `ExternalFileSystem` was an attempt to provide a more limited interface while exposing the "external" path in a way that
2018 Nov 15
3
"devirtualizing" files in the VFS
I'd like to get some more perspectives on the role of the VirtualFileSystem abstraction in llvm/Support. (The VFS layer has recently moved from Clang to LLVM, so crossposting to both lists) https://reviews.llvm.org/D54277 proposed adding a function to VirtualFileSystem to get the underlying "real file" path from a VFS path. LLDB is starting to use VFS for some filesystem
2015 Feb 24
2
[LLVMdev] Removing contention in PassRegistry accesses to speed up compiles
...ock_wait + 99.86% llvm::PassRegistry::getPassInfo(void const*) const + 4.03% try_to_wake_up + 0.61% _raw_spin_lock_irq + 4.10% caching_compile libpthread.so.0 [.] pthread_mutex_lock + 1.81% caching_compile caching_compiler_test_old [.] llvm::sys::MemoryFence() + 1.63% caching_compile libpthread.so.0 [.] __pthread_mutex_unlock_usercnt -------------- next part -------------- Samples: 113K of event 'cycles', Event count (approx.): 70370381305 + 10.38% caching_compile caching_compiler_test [.] common::RecordParser::MatchData(comm...
2009 Jun 02
1
[LLVMdev] RFC: Atomics.h
...n Jun 1, 2009, at 11:17 PM, Jonathan Ragan-Kelley wrote: > Yes, indeed. Are they macros or functions? If macros, why not just #undef them at the top of Atomics.h? -Chris > > > On May 28, 10:41 pm, Owen Anderson <resis... at mac.com> wrote: >> >> Wait, it defines MemoryFence() AND MemoryBarrier()?? >> >> Sheesh, they had to take all the reasonable names. :-/ > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/ll...
2009 Aug 24
1
[LLVMdev] [llvm-commits] [llvm] r79731 - /llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
...t unfortunate. However, this path is extremely hot in LLC, and was significantly contended using only two threads. I don't have a non-contended solution offhand. >> VTs[VT.getSimpleVT().SimpleTy] = VT; >> - return &VTs[VT.getSimpleVT().SimpleTy]; >> + sys::MemoryFence(); > > I don't think this fence actually does anything useful unless > users of the pointer do a fence before reading the contents > of the pointer. That said, I think alpha is the only platform > where you have to worry about this kind of pointer vs pointee > race. I'm...
2012 Feb 28
0
[LLVMdev] [patch] atomic functions on darwin
...APPLE__) + typedef int32_t cas_flag; #else typedef uint32_t cas_flag; #endif Index: lib/Support/Atomic.cpp =================================================================== --- lib/Support/Atomic.cpp (revision 151623) +++ lib/Support/Atomic.cpp (working copy) @@ -21,17 +21,27 @@ #undef MemoryFence #endif +#if defined(__APPLE__) +#include <libkern/OSAtomic.h> +// __APPLE__ should take precedence over __GNUC__ +// sys::cas_flag is int32_t from Support/Atomic.h, so use '32' variants +// prototypes lack the 'volatile' qualifier, so we need to cast them away +template &lt...
2013 Jun 17
1
[virtio-spec PATCH 0/5] Receiving Used Buffers example code: cleanups and an extra mb()
Stefan Hajnoczi <stefanha at gmail.com> writes: > On Sat, Jun 8, 2013 at 7:39 PM, Laszlo Ersek <lersek at redhat.com> wrote: >> Patches before the last are small cleanups. >> >> In the last patch I'm trying to extract / generalize an idea from Stefan >> Hajnoczi's review of my virtio-net driver for OVMF. How about a single patch which just replaces
2013 Jun 17
1
[virtio-spec PATCH 0/5] Receiving Used Buffers example code: cleanups and an extra mb()
Stefan Hajnoczi <stefanha at gmail.com> writes: > On Sat, Jun 8, 2013 at 7:39 PM, Laszlo Ersek <lersek at redhat.com> wrote: >> Patches before the last are small cleanups. >> >> In the last patch I'm trying to extract / generalize an idea from Stefan >> Hajnoczi's review of my virtio-net driver for OVMF. How about a single patch which just replaces
2012 Oct 23
0
[LLVMdev] Error building llvm on AIX 7.1
...oFinalization(llvm::Module&) ld: 0711-317 ERROR: Undefined symbol: vtable for llvm::FunctionPass ld: 0711-317 ERROR: Undefined symbol: .llvm::Pass::~Pass() ld: 0711-317 ERROR: Undefined symbol: .llvm::sys::AtomicIncrement(unsigned int volatile*) ld: 0711-317 ERROR: Undefined symbol: .llvm::sys::MemoryFence() ld: 0711-317 ERROR: Undefined symbol: .llvm::Statistic::RegisterStatistic() ld: 0711-317 ERROR: Undefined symbol: .AnnotateHappensAfter ld: 0711-317 ERROR: Undefined symbol: .llvm::errs() ld: 0711-317 ERROR: Undefined symbol: .llvm::Value::getName() const ld: 0711-317 ERROR: Undefined symbol: .ll...
2012 Oct 23
2
[LLVMdev] Error building llvm on AIX 7.1
Hi All, I am trying to build llvm on AIX. I installed all the required packages including gcc, g++, etc ./configure also went fine. but i tried to run gmake, i got the following error: llvm[1]: Compiling MemoryBuffer.cpp for Release+Asserts build llvm[1]: Compiling MemoryObject.cpp for Release+Asserts build llvm[1]: Compiling Mutex.cpp for Release+Asserts build llvm[1]: Compiling Path.cpp for