digitalmars.D.bugs - [Issue 6350] New: Const array static usage optimization
- d-bugmail puremagic.com (42/42) Jul 19 2011 http://d.puremagic.com/issues/show_bug.cgi?id=6350
http://d.puremagic.com/issues/show_bug.cgi?id=6350 Summary: Const array static usage optimization Product: D Version: unspecified Platform: All OS/Version: Windows Status: NEW Severity: enhancement Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: bearophile_hugs eml.cc A D2 program: enum int[1] array1 = [10]; int foo(int[1] v) { return array1[0] * v[0]; } const int[1] array2 = [10]; int bar(int[1] v) { return array2[0] * v[0]; } void main() {} The asm of the two functions (dmd 2.054, -O -release), inside bar() the contents of array2 are loaded with a mov instruction: _D4test3fooFG1iZi comdat push EAX lea EAX,[EAX*4][EAX] add EAX,EAX pop ECX ret _D4test3barFG1iZi comdat push EAX mov EAX,_D4test6array2xG1i imul EAX,[ESP] pop ECX ret Is it possible for the compiler for such common case of const array to remove the mov instruction from the bar () function too? -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jul 19 2011