| Summary: | replace __intel_new_memcpy with valgrind's memcpy | ||
|---|---|---|---|
| Product: | [Developer tools] valgrind | Reporter: | Nuno Lopes <nunoplopes> |
| Component: | memcheck | Assignee: | Julian Seward <jseward> |
| Status: | REPORTED --- | ||
| Severity: | normal | CC: | flo2030 |
| Priority: | NOR | ||
| Version First Reported In: | 3.7 SVN | ||
| Target Milestone: | --- | ||
| Platform: | Unlisted Binaries | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
Nuno Lopes
2011-11-16 10:20:31 UTC
Can you get a list of all such functions? I'm sure there will be others for string related functions, memset, and so on. Here is the list I could extract from a few libraries compiled with ICC: _intel_atan_fixup __intel_cpu_dispatch_fail __intel_cpu_indicator __intel_cpu_indicator_init __intel_dgcopyan_em64t __intel_dgcopyat_em64t __intel_dgcopybn_psc __intel_dgcopybt_psc __intel_dinner_em64t __intel_dinnerz_roll_em64t _intel_fast_memcmp _intel_fast_memcpy _intel_fast_memcpy.A _intel_fast_memcpy.J _intel_fast_memset _intel_fast_memset.A _intel_fast_memset.J __intel_get_memcpy_largest_cachelinesize __intel_get_memcpy_largest_cache_size __intel_get_mem_ops_method __intel_get_new_mem_ops_cpuid __intel_get_new_mem_ops_cpuid4 __intel_init_mem_ops_method __intel_memcpy_largest_cachelinesize __intel_memcpy_largest_cache_size __intel_memcpy_mem_ops_method __intel_new_memcmp __intel_new_memcpy __intel_new_memmove __intel_new_memset __intel_new_proc_init __intel_new_proc_init.A __intel_new_proc_init_B __intel_new_proc_init_B.A __intel_new_proc_init_B.J __intel_new_proc_init_B.K __intel_new_proc_init_B.L __intel_new_proc_init_H __intel_new_proc_init.H __intel_new_proc_init_H.A __intel_new_proc_init_H.P __intel_new_proc_init_N __intel_new_proc_init_N.A __intel_new_proc_init_N.J __intel_new_proc_init_N.K __intel_new_proc_init_N.L __intel_new_proc_init_P __intel_new_proc_init_P.A __intel_new_proc_init_P.L __intel_new_proc_init_S __intel_new_proc_init_S.A __intel_new_proc_init_S.N __intel_new_proc_init_T __intel_new_proc_init_T.A __intel_new_proc_init_T.M __intel_new_strlen _intel_order_fixup __intel_override_mem_ops_method _intel_pow_fixup __intel_proc_init __intel_proc_init.A __intel_proc_init_B __intel_proc_init_B.A __intel_proc_init_B.J __intel_proc_init_B.K __intel_proc_init_B.L __intel_proc_init.H __intel_proc_init_N __intel_proc_init_N.A __intel_proc_init_N.J __intel_proc_init_N.K __intel_proc_init_N.L __intel_proc_init_P __intel_proc_init_P.A __intel_proc_init_P.L __intel_proc_init_T __intel_proc_init_T.A __intel_proc_init_T.M __intel_rtc_uninit_use __intel_security_check_cookie __intel_security_cookie __intel_security_init_cookie __intel_set_memcpy_largest_cachelinesize __intel_set_memcpy_largest_cache_size __intel_VEC_memcpy __intel_VEC_memset __intel_VEC_memzero (In reply to comment #2) > Here is the list I could extract from a few libraries compiled with ICC: From the list there are interesting: _intel_fast_memcmp _intel_fast_memcpy _intel_fast_memset __intel_new_memcmp __intel_new_memcpy __intel_new_memmove __intel_new_memset __intel_new_strlen __intel_VEC_memcpy __intel_VEC_memset __intel_VEC_memzero It is curious, that there is only one function to deal with strings.. What do you know about the __intel_VEC_... functions? E.g. What is the difference between __intel_new_memcpy and __intel_VEC_memcpy? Perhaps browsing header files sheds some light on how they are used. I have no clue. I'm just linking with a library compiled with ICC. The assembly of the intel_VEC_* functions is pretty confusing. They use the rdtsc instruction multiple times, in addition to what you would expect (e.g., movdqa and movntdq). |