Page MenuHomePhabricator

zhaomo (Zhaomo Yang)
User

Projects

User does not belong to any projects.

User Details

User Since
Jul 13 2018, 3:36 PM (65 w, 2 d)

Recent Activity

Fri, Sep 20

zhaomo updated the diff for D50754: Implementation of a vtable interleaving algorithm.

This patch fixed a few bugs that can be triggered by some corner cases involved with virtual inheritance.

Fri, Sep 20, 5:05 PM · Restricted Project
zhaomo updated the diff for D51905: Front-end of the implementation of the interleaving algorithm.

In this new patch, I added a "level" field to type metadata when vtable interleaving is enabled.
Currently type metadata is a (byte offset, type) pair. However, suppose T1 and T2 are compatible with the same offset of a vtable, the interleaving pass cannot always determine which type is the less derived one because T1 and T2 may have the same number of compatible vtables. An observation is that types that are compatible with the same address point like T1 and T2 form a linear inheritance hierarchy. Based on this, I added a third field to the type metadata representing the level of the type in the linear type hierarchy. all-vtables' level value is 1 and any other type's level is greater than 1. The more derived a type is, the higher the level is.

Fri, Sep 20, 5:02 PM · Restricted Project
zhaomo updated the diff for D50754: Implementation of a vtable interleaving algorithm.
Fri, Sep 20, 4:55 PM · Restricted Project

Apr 15 2019

zhaomo updated the diff for D50754: Implementation of a vtable interleaving algorithm.

Fixed some bugs in the previous implementation.

Apr 15 2019, 6:00 AM · Restricted Project
zhaomo added a comment to D51905: Front-end of the implementation of the interleaving algorithm.

Addressed @rsmith's comments.

Apr 15 2019, 5:58 AM · Restricted Project
zhaomo updated the diff for D51905: Front-end of the implementation of the interleaving algorithm.

Fixed bugs in the previous patch.

Apr 15 2019, 5:57 AM · Restricted Project

Sep 13 2018

zhaomo updated the diff for D50754: Implementation of a vtable interleaving algorithm.

Fixed issues pointed out by Peter.

Sep 13 2018, 9:11 PM · Restricted Project
zhaomo updated the diff for D51905: Front-end of the implementation of the interleaving algorithm.

Fixed issues pointed out by Peter and Vlad.

Sep 13 2018, 9:08 PM · Restricted Project
zhaomo added a comment to D51905: Front-end of the implementation of the interleaving algorithm.

This change causes all compiler-rt cfi tests to be UNSUPPORTED for me locally, do you have any idea why that might be? The lit changes don't make it immediately clear.

Sep 13 2018, 8:42 PM · Restricted Project
zhaomo added inline comments to D51905: Front-end of the implementation of the interleaving algorithm.
Sep 13 2018, 4:31 PM · Restricted Project
zhaomo added inline comments to D51905: Front-end of the implementation of the interleaving algorithm.
Sep 13 2018, 4:22 PM · Restricted Project

Sep 12 2018

zhaomo added inline comments to D51905: Front-end of the implementation of the interleaving algorithm.
Sep 12 2018, 1:19 PM · Restricted Project

Sep 11 2018

zhaomo updated the diff for D50372: Introduce the VTable interleaving scheme to the CFI design documentation.

Fixed typos pointed out by pcc.

Sep 11 2018, 1:35 PM

Sep 10 2018

zhaomo created D51905: Front-end of the implementation of the interleaving algorithm.
Sep 10 2018, 6:44 PM · Restricted Project
zhaomo updated the diff for D50754: Implementation of a vtable interleaving algorithm.

Fixed some bugs

Sep 10 2018, 6:34 PM · Restricted Project

Sep 6 2018

zhaomo updated the diff for D51698: Prevent Constant Folding From Optimizing inrange GEP.
Sep 6 2018, 10:42 AM
zhaomo updated the summary of D51698: Prevent Constant Folding From Optimizing inrange GEP.
Sep 6 2018, 10:42 AM
zhaomo updated the summary of D51698: Prevent Constant Folding From Optimizing inrange GEP.
Sep 6 2018, 10:42 AM

Sep 5 2018

zhaomo updated the diff for D51698: Prevent Constant Folding From Optimizing inrange GEP.
Sep 5 2018, 1:38 PM
zhaomo retitled D51698: Prevent Constant Folding From Optimizing inrange GEP from Prevent Constant Folding Optimizes inrange GEP to Prevent Constant Folding From Optimizing inrange GEP.
Sep 5 2018, 11:41 AM
zhaomo created D51698: Prevent Constant Folding From Optimizing inrange GEP.
Sep 5 2018, 11:34 AM

Aug 27 2018

zhaomo updated the diff for D50754: Implementation of a vtable interleaving algorithm.
Aug 27 2018, 5:52 PM · Restricted Project
zhaomo updated the diff for D50754: Implementation of a vtable interleaving algorithm.
Aug 27 2018, 1:15 PM · Restricted Project

Aug 23 2018

zhaomo updated the diff for D50754: Implementation of a vtable interleaving algorithm.

Fix the issues pointed out by Peter and Vlad.

Aug 23 2018, 5:45 PM · Restricted Project

Aug 21 2018

zhaomo updated the diff for D50754: Implementation of a vtable interleaving algorithm.

Addressed issues pointed out by pcc

Aug 21 2018, 7:15 PM · Restricted Project

Aug 14 2018

zhaomo updated the diff for D50754: Implementation of a vtable interleaving algorithm.
Aug 14 2018, 7:44 PM · Restricted Project
zhaomo retitled D50754: Implementation of a vtable interleaving algorithm from Implementation of interleaving algorithm to Implementation of a vtable interleaving algorithm.
Aug 14 2018, 7:38 PM · Restricted Project
zhaomo created D50754: Implementation of a vtable interleaving algorithm.
Aug 14 2018, 7:33 PM · Restricted Project

Aug 7 2018

zhaomo updated the diff for D50372: Introduce the VTable interleaving scheme to the CFI design documentation.

Fix mistakes and provide more information about the interleaving algorithm

Aug 7 2018, 6:58 PM
zhaomo updated the diff for D50372: Introduce the VTable interleaving scheme to the CFI design documentation.

Updated version of the patch

Aug 7 2018, 3:40 PM

Aug 6 2018

zhaomo created D50372: Introduce the VTable interleaving scheme to the CFI design documentation.
Aug 6 2018, 6:45 PM

Jul 20 2018

zhaomo updated the diff for D49405: Change the cap on the amount of padding for each vtable to 32-byte (previously it was 128-byte).

Some tests failed because they did not expect the new layouts caused by the change to the padding cap. I modified those tests so that now they accept the new layouts.

Jul 20 2018, 1:21 PM

Jul 19 2018

zhaomo updated the diff for D49405: Change the cap on the amount of padding for each vtable to 32-byte (previously it was 128-byte).

Updated the comment according to Peter's suggestion.

Jul 19 2018, 12:38 PM

Jul 18 2018

zhaomo updated the diff for D49405: Change the cap on the amount of padding for each vtable to 32-byte (previously it was 128-byte).

Added more information about the experiments in the comment.

Jul 18 2018, 5:04 PM
zhaomo planned changes to D49405: Change the cap on the amount of padding for each vtable to 32-byte (previously it was 128-byte).
Jul 18 2018, 2:35 PM

Jul 16 2018

zhaomo updated the summary of D49405: Change the cap on the amount of padding for each vtable to 32-byte (previously it was 128-byte).
Jul 16 2018, 5:07 PM
zhaomo updated the summary of D49405: Change the cap on the amount of padding for each vtable to 32-byte (previously it was 128-byte).
Jul 16 2018, 4:13 PM
zhaomo updated the diff for D49405: Change the cap on the amount of padding for each vtable to 32-byte (previously it was 128-byte).
  • removed .arcconfig
Jul 16 2018, 4:06 PM
zhaomo created D49405: Change the cap on the amount of padding for each vtable to 32-byte (previously it was 128-byte).
Jul 16 2018, 3:44 PM