digitalmars.D.bugs - [Issue 10402] New: memmove optimization for std.algorithm.copy
- d-bugmail puremagic.com (28/28) Jun 18 2013 http://d.puremagic.com/issues/show_bug.cgi?id=10402
- d-bugmail puremagic.com (8/24) Jun 18 2013 http://d.puremagic.com/issues/show_bug.cgi?id=10402
http://d.puremagic.com/issues/show_bug.cgi?id=10402
Summary: memmove optimization for std.algorithm.copy
Product: D
Version: unspecified
Platform: All
OS/Version: All
Status: NEW
Severity: enhancement
Priority: P2
Component: Phobos
AssignedTo: nobody puremagic.com
ReportedBy: tommitissari hotmail.com
Add an optimization for:
Range2 copy(Range1, Range2)(Range1 source, Range2 target);
...to use the c function memmove when it is safe to do so and the two ranges
overlap each other (when they don't overlap, a vectorized copy should be
faster). As far as I can tell, it is safe to use memmove for copying source
over target if all of the following are true:
1) Both ranges are arrays (static or dynamic)
2) Both arrays have the same element type
3) hasElaborateAssign!T is false for the element type T
I haven't benchmarked anything, but all the good C++ standard library
implementations of std::copy seem to do this optimization, and I trust that
they know what they are doing.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jun 18 2013
http://d.puremagic.com/issues/show_bug.cgi?id=10402Add an optimization for: Range2 copy(Range1, Range2)(Range1 source, Range2 target); ...to use the c function memmove when it is safe to do so and the two ranges overlap each other (when they don't overlap, a vectorized copy should be faster). As far as I can tell, it is safe to use memmove for copying source over target if all of the following are true: 1) Both ranges are arrays (static or dynamic) 2) Both arrays have the same element type 3) hasElaborateAssign!T is false for the element type T I haven't benchmarked anything, but all the good C++ standard library implementations of std::copy seem to do this optimization, and I trust that they know what they are doing.Also, the documentation for std.algorithm.copy should be changed to indicate that the ranges are allowed to overlap if the above conditions hold. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jun 18 2013








d-bugmail puremagic.com