August 31, 2014 [Issue 13381] One case of array literal that can be stack-allocated | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=13381 --- Comment #11 from yebblies <yebblies@gmail.com> --- (In reply to bearophile_hugs from comment #10) > > dmd is not doing better. Haha no surprise there. > > > I'd say it's worth filing an optimizer enhancement. > > I don't know. Actually this is the same thing as general inlining and expanding of array ops, which I think you've already filed. -- |
September 16, 2014 [Issue 13381] Two cases of array literal that can be stack-allocated | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=13381 bearophile_hugs@eml.cc changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|One case of array literal |Two cases of array literal |that can be stack-allocated |that can be stack-allocated --- Comment #12 from bearophile_hugs@eml.cc --- Another case worth optimizing: void main() @nogc { import std.traits: EnumMembers; enum Foo { A, B, C, D } size_t i = 2; Foo[4] foos = [EnumMembers!Foo]; // OK auto r1 = foos[i]; auto r2 = [EnumMembers!Foo][i]; // Error: array literal in @nogc } -- |
October 06, 2014 [Issue 13381] Two cases of array literal that can be stack-allocated | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=13381 --- Comment #13 from bearophile_hugs@eml.cc --- A case (from Issue 13576 ): immutable int[] a; static this() @nogc { a = [1]; } void main() {} dmd 2.067alpha gives: temp.d(3,9): Error: array literal in @nogc function _staticCtor1 may cause GC allocation -- |
October 06, 2014 [Issue 13381] Two cases of array literal that can be stack-allocated | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=13381 --- Comment #14 from bearophile_hugs@eml.cc --- *** Issue 13576 has been marked as a duplicate of this issue. *** -- |
October 31, 2014 [Issue 13381] Two cases of array literal that can be stack-allocated | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=13381 --- Comment #15 from bearophile_hugs@eml.cc --- Another common case where I'd like the compiler to avoid GC-allocations: void main() @nogc { immutable int[4] a1 = [1, 2, 4, 5]; size_t i = 2; immutable int[5] a2 = a1[0 .. i] ~ 3 ~ a1[i .. $]; } Currently you have to write this more bug-prone code and the 'a2' variable can't be immutable: void main() @nogc { immutable int[4] a1 = [1, 2, 4, 5]; size_t i = 2; int[5] a2 = void; a2[0 .. i] = a1[0 .. i]; a2[2] = 3; a2[i + 1 .. $] = a1[i .. $]; } -- |
September 14, 2021 [Issue 13381] Two cases of array literal that can be stack-allocated | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=13381 Dennis <dkorpel@live.nl> changed: What |Removed |Added ---------------------------------------------------------------------------- See Also| |https://issues.dlang.org/sh | |ow_bug.cgi?id=22306 -- |
December 17, 2022 [Issue 13381] Two cases of array literal that can be stack-allocated | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=13381 Iain Buclaw <ibuclaw@gdcproject.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P1 |P4 -- |
July 22 [Issue 13381] Two cases of array literal that can be stack-allocated | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=13381 Nick Treleaven <nick@geany.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |nick@geany.org --- Comment #16 from Nick Treleaven <nick@geany.org> --- Code in comment #0 and comment #12 now compile. Comment #13 and comment #19 do not. -- |
November 29 [Issue 13381] Two cases of array literal that can be stack-allocated | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=13381 --- Comment #17 from Nick Treleaven <nick@geany.org> --- Allowing comment #13 code depends on fixing Issue 20712. > and comment #19 do not. I meant comment #15 does not: > immutable int[5] a2 = a1[0 .. i] ~ 3 ~ a1[i .. $]; I don't see how that could be allowed because `i` is a runtime value, so the compiler has to make a GC array allocation (at least in the general case). -- |
December 13 [Issue 13381] Two cases of array literal that can be stack-allocated | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=13381 --- Comment #18 from dlangBugzillaToGithub <robert.schadek@posteo.de> --- THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/dmd/issues/18874 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB -- |
Copyright © 1999-2021 by the D Language Foundation