Page MenuHomePhabricator
Feed Advanced Search

Feb 15 2019

kachkov98 accepted D58253: [CodeExtractor] Do not lift lifetime.end markers for region inputs.

LGTM

Feb 15 2019, 7:23 AM · Restricted Project
kachkov98 added a comment to D57834: [CodeExtractor] Only lift lifetime markers present in the extraction region.

Just for note: it seems that skipping extracting lifetime.start when lifetime.end can't be lifted (in 2nd option) can again lead to miscompile as in https://reviews.llvm.org/D55967 (assume that markers for x and y in rhs are not lifted). It's safer to extract all lifetime.start markers referencing inputs to mark them all as simultaneously used, as in option (1).

Feb 15 2019, 7:22 AM · Restricted Project

Feb 14 2019

kachkov98 added a comment to D57834: [CodeExtractor] Only lift lifetime markers present in the extraction region.

In this example there are two possible entry points in region, so it can't be extracted (first block in region should dominate the others). Maybe there are better examples of issue?
As I understand, correct (but conservative) transformation is to move lifetime.start upwards to some dominator block. According to this, lifting lifetime.start before call must be right. Moving lifetime.end downwards to some post-dominator block is generally incorrect. The case when lifetime.end for the same value occured at every execution path doesn't seem very common, but placing lifetime.end after call gives more accurate information. The thing that is unclear fo me is how erasing all markers for input in case when lifetime.end can't be lifted helps stack coloring?
BTW, it seems there is no simple solution that doesn't reduce stack coloring opportunities in all cases (can't provide information to the caller whether lifetime.end for given value occured or not).

Feb 14 2019, 1:31 PM · Restricted Project

Feb 12 2019

kachkov98 accepted D57834: [CodeExtractor] Only lift lifetime markers present in the extraction region.

LGTM

Feb 12 2019, 9:48 PM · Restricted Project

Feb 8 2019

kachkov98 added a comment to D57919: [CodeExtractor] Restore outputs after creating exit stubs.

Thank you! Could you please commit it? (I don't have access to do it)

Feb 8 2019, 11:58 AM · Restricted Project
kachkov98 updated the diff for D57919: [CodeExtractor] Restore outputs after creating exit stubs.
Feb 8 2019, 11:56 AM · Restricted Project
kachkov98 updated the diff for D57919: [CodeExtractor] Restore outputs after creating exit stubs.

Add assertion for the InsertPt
Remove DT construction from CodeExtractor tests
Simplify test

Feb 8 2019, 12:41 AM · Restricted Project
kachkov98 added inline comments to D57919: [CodeExtractor] Restore outputs after creating exit stubs.
Feb 8 2019, 12:38 AM · Restricted Project

Feb 7 2019

kachkov98 created D57919: [CodeExtractor] Restore outputs after creating exit stubs.
Feb 7 2019, 11:46 AM · Restricted Project

Jan 18 2019

kachkov98 accepted D56045: [CodeExtractor] Emit lifetime markers around reloads of outputs.

lgtm

Jan 18 2019, 6:27 AM

Jan 4 2019

kachkov98 accepted D55967: [CodeExtractor] Do not extract unsafe lifetime markers.

LGTM

Jan 4 2019, 9:16 AM

Dec 21 2018

kachkov98 added a comment to D55967: [CodeExtractor] Do not extract unsafe lifetime markers.

I'm concerned about skipping processing markers for outputs. Currently HotColdSplit and partial inlining do not outline function if number of outputs is not zero (by calling findInputsOutputs()), but this check is unreliable because there is some processing of region before extracting (splitReturnBlocks, splitPHINodesOfEntry, splitPHINodesOfExit) and input/output parameters can be changed (their number may become non-zero). So another question is why this check should be done at all (does it bypass some known problem?) Seems that CodeExtractor does not impose such restrictions.

Dec 21 2018, 11:33 AM

Dec 3 2018

kachkov98 added a comment to D55018: [CodeExtractor] Split PHI nodes with incoming values from outlined region (PR39433).

Thank you! I don't have commit access, could you please submit it?

Dec 3 2018, 1:32 PM

Dec 1 2018

kachkov98 added inline comments to D55018: [CodeExtractor] Split PHI nodes with incoming values from outlined region (PR39433).
Dec 1 2018, 9:32 AM
kachkov98 updated the diff for D55018: [CodeExtractor] Split PHI nodes with incoming values from outlined region (PR39433).

Fix issue when terminator instruction in predecessor is switch
Add unit test for PHIs with one incoming value from region

Dec 1 2018, 9:17 AM

Nov 29 2018

kachkov98 added inline comments to D55018: [CodeExtractor] Split PHI nodes with incoming values from outlined region (PR39433).
Nov 29 2018, 10:43 AM
kachkov98 updated the diff for D55018: [CodeExtractor] Split PHI nodes with incoming values from outlined region (PR39433).

Fix comments style
Return assertion back
Verify function consistency before outlining

Nov 29 2018, 10:06 AM

Nov 28 2018

kachkov98 created D55018: [CodeExtractor] Split PHI nodes with incoming values from outlined region (PR39433).
Nov 28 2018, 1:14 PM