Comments (3)
rep movsb/stosb
is fast ( with large and aligned memory ) because of the ERMSB optimization.
Yes; and for small blocks of memory it has a huge startup overhead.
Those functions have been designed to be small and inlineable. They are not presumed to be fast.
But
repz cmpsb
is not the case. It's not optimized.
That does not matter. It is there only because GCC requires it. At the moment we make no use of it at all.
RtlCompareMemory is slow because it uses repz cmpsb too. We can use memcmp in ntdll, which results in both less code and better performance.
memcmp()
does not exist in NTDLL.DEF from mingw-w64 and would cause undefined references if it was called.
from mcfgthread.
We dont use cmpsb but we use memmove
https://github.com/lhmouse/mcfgthread/blob/ac3cf22f602a15796992d72e52c49e91eb0b38d0/src/dtor_queue.c
Add GCC use these functions internally, that's why GCC requires it.
https://gcc.godbolt.org/z/f889cYc6e
And
They are exported from the DLL for external use
memcmp() does not exist in NTDLL.DEF from mingw-w64 and would cause undefined references if it was called.
What about kernel*.dll? No
from mcfgthread.
The fact that 'we make no use of it' does not mean we make no use of all of them.
from mcfgthread.
Related Issues (20)
- can the benchmarking results also include wine? HOT 3
- pthread and standalone c11 thread support HOT 1
- arm support? HOT 1
- Should we migrate gcc from winpthreads to mcfgthread? HOT 1
- Clang pre-compiled header causes functions to be not exported from DLL HOT 10
- 关于静态编译的问题 HOT 9
- 用mcf线程模型本地或加拿大编译出来的lld (LLVM的链接器)不能用-flto=thin HOT 2
- License clarification HOT 4
- Make global data shareable between static libraries HOT 1
- Implement inline aliases in a more 'proper' way HOT 4
- Need bench results for condvar HOT 1
- Change log for v1.4
- Function declaration incorrect for c11
- undefined reference to `__MCF_cxa_atexit' HOT 15
- TLS and per-thread exit callbacks should support foreign threads HOT 2
- Link issues using LLVM/Clang built to use GCC's standard libraries HOT 3
- Deadlock in conditional variable? HOT 2
- Blue screen crashes HOT 12
- Use GitHub Actions
- Using MCF thread model with SJLJ exception handling results in infinite recursion HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mcfgthread.