Thread overview
[Issue 15296] [REG2.069] cannot inline simple function that calls use non-inlinable statements
[Issue 15296] [REG dmd2.069] cannot inline simple function that calls use non-inlinable statements
Nov 09, 2015
Vladimir Panteleev
Nov 20, 2015
Kenji Hara
November 09, 2015
https://issues.dlang.org/show_bug.cgi?id=15296

Vladimir Panteleev <thecybershadow@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |thecybershadow@gmail.com

--- Comment #1 from Vladimir Panteleev <thecybershadow@gmail.com> ---
Introduced in https://github.com/D-Programming-Language/dmd/pull/5121

--
November 20, 2015
https://issues.dlang.org/show_bug.cgi?id=15296

Kenji Hara <k.hara.pg@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull
            Summary|[REG dmd2.069] cannot       |[REG2.069] cannot inline
                   |inline simple function that |simple function that calls
                   |calls use non-inlinable     |use non-inlinable
                   |statements                  |statements
                 OS|Windows                     |All

--- Comment #2 from Kenji Hara <k.hara.pg@gmail.com> ---
https://github.com/D-Programming-Language/dmd/pull/5277

--
November 21, 2015
https://issues.dlang.org/show_bug.cgi?id=15296

--- Comment #3 from github-bugzilla@puremagic.com ---
Commits pushed to stable at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/4c0c8088d34aca637aef07122ec8a26ce1244fe3
fix Issue 15296 - cannot inline simple function that calls use non-inlinable
statements

Add workaround to do inlining same with the old code.

https://github.com/D-Programming-Language/dmd/commit/6a407df2384446cb14eea854860e391c5db59377 Merge pull request #5277 from 9rnsr/fix15296

[REG2.069] Issue 15296 - cannot inline simple function that calls use non-inlinable statements

--
December 01, 2015
https://issues.dlang.org/show_bug.cgi?id=15296

--- Comment #4 from github-bugzilla@puremagic.com ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/4c0c8088d34aca637aef07122ec8a26ce1244fe3
fix Issue 15296 - cannot inline simple function that calls use non-inlinable
statements

https://github.com/D-Programming-Language/dmd/commit/6a407df2384446cb14eea854860e391c5db59377 Merge pull request #5277 from 9rnsr/fix15296

--
February 29, 2016
https://issues.dlang.org/show_bug.cgi?id=15296

--- Comment #5 from github-bugzilla@puremagic.com ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/25453b66de52148e92531c4936de471e5b2cf54b Properly fix Issue 15296 - expand CallExp in ExpStatement as statements

If a `CallExp`, `CondExp`, or `CommaExp` appears in `ExpStatement`, it can be
inlined as statements.
It provides more inlining opportunity. Even if the called function contains
some statements which cannot be expanded as expressions (e.g. `ForStatement`),
the function call can be inlined.

In `expandInline`, if `vthis` is a temporary variable, its dtor call should be deferred till the end of expanded function body statements.

https://github.com/D-Programming-Language/dmd/commit/06133fd5bfa17beba18bbe122ba1ef1e5a344f42 Merge pull request #5292 from 9rnsr/fix15296x

Properly fix Issue 15296 - expand CallExp in ExpStatement as statements

--