[Bug 228] New: Creation of temporaries internally needs to be taken back under control.
via D.gnu
d.gnu at puremagic.com
Mon Jun 6 00:28:45 PDT 2016
http://bugzilla.gdcproject.org/show_bug.cgi?id=228
Bug ID: 228
Summary: Creation of temporaries internally needs to be taken
back under control.
Product: GDC
Version: development
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: Normal
Component: gdc
Assignee: ibuclaw at gdcproject.org
Reporter: ibuclaw at gdcproject.org
See, for instance: https://github.com/D-Programming-GDC/GDC/pull/217
Though the use of COMPOUND_EXPR seems to make the matter look worse, it should
be investigated why we create so many temporaries (SAVE_EXPRs).
Having a single pass after generating the code is not ideal. If it is indeed
simply COMPOUND_EXPRs with side effects, then we should make all codegen
helpers COMPOUND_EXPR-aware.
e.g:
build_deref(build_nop(type, build_address(expr)));
Should not result in:
*((TYPE *)&(foo(), bar));
Instead always apply the action to the right-most result.
(foo(), *(TYPE *)&bar);
This should simplify inspecting expressions in order-sensitive parts, where the
question "Do we need a temporary?" in maybe_make_temp could three possible
answers - Yes; No; and No, but the left hand side (normally construction) needs
to be executed first.
Creating temporaries at every step also blocks bug42.
--
You are receiving this mail because:
You are watching all bug changes.
More information about the D.gnu
mailing list