Remove the dmd front-end inliner and related code#16173
Conversation
|
Thanks for your pull request, @ibuclaw! Bugzilla referencesYour PR doesn't reference any Bugzilla issue. If your PR contains non-trivial changes, please reference a Bugzilla issue or create a manual changelog. Testing this PR locallyIf you don't have a local development environment setup, you can use Digger to test this PR: dub run digger -- build "master + dmd#16173" |
6421e60 to
f97053d
Compare
DMD has a backend inliner, it just isn't currently used for non-optimised builds |
thewilsonator
left a comment
There was a problem hiding this comment.
Need to update frontend.h
diff --git a/home/circleci/dmd/compiler/src/dmd/frontend.h b/home/circleci/dmd/generated/linux/release/64/frontend.h
index d29bccf2aa..6536228d62 100644
--- a/home/circleci/dmd/compiler/src/dmd/frontend.h
+++ b/home/circleci/dmd/generated/linux/release/64/frontend.h
@@ -411,9 +411,7 @@ enum class PASS : uint8_t
semantic2done = 4u,
semantic3 = 5u,
semantic3done = 6u,
- inline_ = 7u,
- inlinedone = 8u,
- obj = 9u,
+ obj = 7u,
};3a2a324 to
b5fc2a8
Compare
Right, so #16171 will have you covered then. |
|
this appears to segfault on |
|
cc @WalterBright about the backend inline segfault hitting this assert on build kite |
b5fc2a8 to
4223d04
Compare
|
merged dependant PR |
|
I'd like to get rid of the front line inliner as much as anyone. But I'd like to wait on this until the dmd backend inliner is more effective. Inlining has a huge effect on performance, so much so that some programs are unusable without inlining. |
(See also related: #16170 and #16171)
As discussed in last DLF meeting.
By disabling the front-end inliner, building Phobos with
-O -release -inlinegets cut down from 40s -> 10s on my machine.Parts of the front-end inliner is still kept around for inlining default arguments (
inlineCopy).arg.copy()and is happy with itarg.copy()because of https://issues.dlang.org/show_bug.cgi?id=2935Could attempt removing
inlineCopyagain if this gets pulled (see also #14214 and #14309)