D.gnu - [Bug 140] New: Inlining certain trivial function fails
- via D.gnu (42/42) Jul 12 2014 Date: Sat, 12 Jul 2014 16:39:54 +0100
Date: Sat, 12 Jul 2014 16:39:54 +0100
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
http://bugzilla.gdcproject.org/show_bug.cgi?id=140
Bug ID: 140
Summary: Inlining certain trivial function fails
Product: GDC
Version: 4.9.x
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: Normal
Component: gdc
Assignee: ibuclaw gdcproject.org
Reporter: art.08.09 gmail.com
GDC fails to inline some trivial functions (like array.empty) in certain cases.
The simplest testcase (that i can think of) that still exhibits the problem:
import std.array, std.algorithm;
immutable a = [1];
int main() {
return a.filter!"true"().empty;
}
This gets compiled to:
<_Dmain>:
sub $0x18,%rsp
mov $0x1,%edi
mov $0x65d968,%esi
callq <pure nothrow property safe bool
std.array.empty!(int).empty(const(int[]))>
add $0x18,%rsp
movzbl %al,%eax
retq
Originally reported on ML
http://forum.dlang.org/post/mailman.75.1396605155.19942.d.gnu puremagic.com ;
some more info in that thread.
Could be related to http://bugzilla.gdcproject.org/show_bug.cgi?id=120 ,
does *not* fail here.
--
You are receiving this mail because:
You are watching all bug changes.
Jul 12 2014








" via D.gnu" <d.gnu puremagic.com>