[PATCH] D35200: Don't use mmap on Windows

2018-03-12 Thread Ivan Donchevskii via Phabricator via cfe-commits
yvvan abandoned this revision.
yvvan added a comment.

It was the wrong direction


https://reviews.llvm.org/D35200



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D35200: Don't use mmap on Windows

2017-08-17 Thread Joerg Sonnenberger via Phabricator via cfe-commits
joerg added a comment.

The primary reason for using mmap is not so much performance, but reduced 
memory foot print.


https://reviews.llvm.org/D35200



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D35200: Don't use mmap on Windows

2017-08-17 Thread Ilya Biryukov via Phabricator via cfe-commits
ilya-biryukov added a comment.

In https://reviews.llvm.org/D35200#844132, @yvvan wrote:

> The files might also be removed.
>  I checked that with qtcreator from git. Switching to the different branch 
> started reparse of some files.
>  When I frequently switched branches back and forth I got lock issues. With 
> mmap turned off this did not happen.


Renaming/removing memory mapped files also works fine.

What were those 'lock issues' specifically? `MemoryBuffer` code that uses the 
function you're changing seems to be doing the right thing by always allowing 
shared file access.
We definitely need a test case that realiably reproduces your issue.


https://reviews.llvm.org/D35200



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D35200: Don't use mmap on Windows

2017-08-17 Thread Ivan Donchevskii via Phabricator via cfe-commits
yvvan added a comment.

The files might also be removed.
I checked that with qtcreator from git. Switching to the different branch 
started reparse of some files.
When I frequently switched branches back and forth I got lock issues. With mmap 
turned off this did not happen.


https://reviews.llvm.org/D35200



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D35200: Don't use mmap on Windows

2017-08-17 Thread Ilya Biryukov via Phabricator via cfe-commits
ilya-biryukov added a comment.

This looks strange. AFAIK, memory mapping files in Windows does no 'locking' by 
itself. I've just written a small program to check that it's possible to modify 
the file, memory-mapped using Win32 API.
What is specific problem you ran into?


https://reviews.llvm.org/D35200



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D35200: Don't use mmap on Windows

2017-08-16 Thread Nikolai Kosjar via Phabricator via cfe-commits
nik added a reviewer: ilya-biryukov.
nik added a comment.

Ping.

I guess locking the file less helps also clangd?!


https://reviews.llvm.org/D35200



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D35200: Don't use mmap on Windows

2017-07-12 Thread Ivan Donchevskii via Phabricator via cfe-commits
yvvan added a comment.

What do you think about that change?


https://reviews.llvm.org/D35200



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D35200: Don't use mmap on Windows

2017-07-10 Thread Ivan Donchevskii via Phabricator via cfe-commits
yvvan created this revision.

Memory mapping does not make llvm faster (at least I don't see any difference).
It also allows llvm not to lock files which is sometimes quite important.


https://reviews.llvm.org/D35200

Files:
  lib/Support/MemoryBuffer.cpp


Index: lib/Support/MemoryBuffer.cpp
===
--- lib/Support/MemoryBuffer.cpp
+++ lib/Support/MemoryBuffer.cpp
@@ -284,6 +284,10 @@
   bool RequiresNullTerminator,
   int PageSize,
   bool IsVolatile) {
+#ifdef _WIN32
+  // Do not use mmap on Windows in order to avoid file locking
+  return false;
+#endif
   // mmap may leave the buffer without null terminator if the file size changed
   // by the time the last page is mapped in, so avoid it if the file size is
   // likely to change.


Index: lib/Support/MemoryBuffer.cpp
===
--- lib/Support/MemoryBuffer.cpp
+++ lib/Support/MemoryBuffer.cpp
@@ -284,6 +284,10 @@
   bool RequiresNullTerminator,
   int PageSize,
   bool IsVolatile) {
+#ifdef _WIN32
+  // Do not use mmap on Windows in order to avoid file locking
+  return false;
+#endif
   // mmap may leave the buffer without null terminator if the file size changed
   // by the time the last page is mapped in, so avoid it if the file size is
   // likely to change.
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits