Page MenuHomePhabricator

trentxintong (Xin Tong)
Software Engineer (Facebook Inc)

Projects

User does not belong to any projects.

User Details

User Since
Jul 17 2015, 4:04 PM (177 w, 2 d)

Recent Activity

Wed, Nov 28

trentxintong committed rL347763: [ThinLTO] Correct linkonce_any function import linkage. NFC..
[ThinLTO] Correct linkonce_any function import linkage. NFC.
Wed, Nov 28, 7:19 AM
trentxintong closed D54928: [ThinLTO] Correct linkonce_any function import linkage. NFC..
Wed, Nov 28, 7:19 AM

Mon, Nov 26

trentxintong created D54928: [ThinLTO] Correct linkonce_any function import linkage. NFC..
Mon, Nov 26, 9:09 PM
trentxintong committed rL347605: [ICP] Remove incompatible attributes at indirect-call promoted callsites..
[ICP] Remove incompatible attributes at indirect-call promoted callsites.
Mon, Nov 26, 2:06 PM
trentxintong closed D54913: [ICP] Remove incompatible attributes at indirect-call promoted callsites..
Mon, Nov 26, 2:06 PM
trentxintong updated the diff for D54913: [ICP] Remove incompatible attributes at indirect-call promoted callsites..

Address comments from @davidxl

Mon, Nov 26, 1:57 PM
trentxintong updated the diff for D54913: [ICP] Remove incompatible attributes at indirect-call promoted callsites..

Update comment in test case.

Mon, Nov 26, 1:18 PM
trentxintong created D54913: [ICP] Remove incompatible attributes at indirect-call promoted callsites..
Mon, Nov 26, 1:14 PM

Thu, Nov 15

trentxintong committed rL346971: [LTO] Load sample profile in LTO link step..
[LTO] Load sample profile in LTO link step.
Thu, Nov 15, 10:09 AM
trentxintong closed D54564: [LTO] Load sample profile in LTO link step..
Thu, Nov 15, 10:09 AM
trentxintong updated the diff for D54564: [LTO] Load sample profile in LTO link step..

Address @tejohnson comment. Thanks!

Thu, Nov 15, 9:55 AM
trentxintong added inline comments to D54564: [LTO] Load sample profile in LTO link step..
Thu, Nov 15, 9:46 AM
trentxintong added inline comments to D54564: [LTO] Load sample profile in LTO link step..
Thu, Nov 15, 9:31 AM
trentxintong updated the diff for D54564: [LTO] Load sample profile in LTO link step..

Add the same thing to the new pass manager as suggested by @tejohnson

Thu, Nov 15, 8:43 AM

Wed, Nov 14

trentxintong created D54564: [LTO] Load sample profile in LTO link step..
Wed, Nov 14, 6:57 PM

Nov 8 2018

trentxintong added a comment to D47949: [callsitesplit] Limit the # of predecessors walk when recording condition.

Thanks for the change @fhahn. I will dig up my test case and run it.

Nov 8 2018, 7:39 PM
trentxintong abandoned D45659: [CallSiteSplitting] Add missing pass dependency.

This is not an issue. Thanks @fhahn.

Nov 8 2018, 9:26 AM

Nov 5 2018

trentxintong committed rL346140: [ThinLTO] Add an option to disable (thin)lto internalization..
[ThinLTO] Add an option to disable (thin)lto internalization.
Nov 5 2018, 7:52 AM
trentxintong closed D53294: [ThinLTO] Add an option to disable (thin)lto internalization..
Nov 5 2018, 7:52 AM
trentxintong updated the diff for D53294: [ThinLTO] Add an option to disable (thin)lto internalization..

Update last bit of suggestions. Thanks for review @tejohnson.

Nov 5 2018, 7:51 AM

Nov 4 2018

trentxintong updated the diff for D53294: [ThinLTO] Add an option to disable (thin)lto internalization..

Address @tejohnson suggestions.

Nov 4 2018, 9:50 AM

Oct 25 2018

trentxintong updated the diff for D53294: [ThinLTO] Add an option to disable (thin)lto internalization..

Address @tejohson's suggestion to add test cases.

Oct 25 2018, 1:12 PM

Oct 15 2018

trentxintong added a comment to D53294: [ThinLTO] Add an option to disable (thin)lto internalization..

Sure. I will add those tests. Thanks for spending time reviewing this @tejohnson!

Oct 15 2018, 1:40 PM
trentxintong updated the diff for D53294: [ThinLTO] Add an option to disable (thin)lto internalization..

Address @tejohnson suggesions. Thanks!

Oct 15 2018, 1:23 PM
trentxintong updated the diff for D53294: [ThinLTO] Add an option to disable (thin)lto internalization..

Address @tejohnson suggestions. Thanks!

Oct 15 2018, 12:37 PM
trentxintong added a comment to D53294: [ThinLTO] Add an option to disable (thin)lto internalization..

Internalization leads to the possibility of changing the function ABI, better global modref AA, better chance of discarding an unused symbol, etc.

Oct 15 2018, 10:48 AM
trentxintong created D53294: [ThinLTO] Add an option to disable (thin)lto internalization..
Oct 15 2018, 10:01 AM

Oct 8 2018

trentxintong committed rL343976: Fix test case for @r343970.
Fix test case for @r343970
Oct 8 2018, 9:39 AM
trentxintong committed rL343970: [ThinLTO] Keep non-prevailing (linkonce|weak)_odr symbols live.
[ThinLTO] Keep non-prevailing (linkonce|weak)_odr symbols live
Oct 8 2018, 8:14 AM
trentxintong closed D52893: [ThinLTO] Keep non-prevailing (linkonce|weak)_odr symbols live.
Oct 8 2018, 8:14 AM

Oct 7 2018

trentxintong added inline comments to D52893: [ThinLTO] Keep non-prevailing (linkonce|weak)_odr symbols live.
Oct 7 2018, 6:39 PM

Oct 5 2018

trentxintong added inline comments to D52893: [ThinLTO] Keep non-prevailing (linkonce|weak)_odr symbols live.
Oct 5 2018, 11:01 AM

Oct 4 2018

trentxintong created D52893: [ThinLTO] Keep non-prevailing (linkonce|weak)_odr symbols live.
Oct 4 2018, 10:03 AM

Sep 24 2018

trentxintong accepted D52433: Re-submitting changes in D51550 because it failed to patch..

D51550 has been accepted.

Sep 24 2018, 1:39 PM

Sep 20 2018

trentxintong committed rL342684: [GlobalDCE] AvailableExternal linkage is checked in isDiscardableIfUnused [NFC]..
[GlobalDCE] AvailableExternal linkage is checked in isDiscardableIfUnused [NFC].
Sep 20 2018, 2:19 PM
trentxintong closed D52319: [GlobalDCE] AvailableExternal linkage is checked in isDiscardableIfUnused [NFC]..
Sep 20 2018, 2:19 PM
trentxintong retitled D52319: [GlobalDCE] AvailableExternal linkage is checked in isDiscardableIfUnused [NFC]. from [GlobalDCE] AvailableExternal linkage is checked in isDiscardableIfUnused to [GlobalDCE] AvailableExternal linkage is checked in isDiscardableIfUnused [NFC]..
Sep 20 2018, 1:15 PM
trentxintong updated the diff for D52319: [GlobalDCE] AvailableExternal linkage is checked in isDiscardableIfUnused [NFC]..

Address @tejohnson comment by adding NFCs to commit msg and summary.

Sep 20 2018, 1:15 PM
trentxintong created D52319: [GlobalDCE] AvailableExternal linkage is checked in isDiscardableIfUnused [NFC]..
Sep 20 2018, 12:45 PM

Sep 17 2018

trentxintong committed rL342398: [CVP] Handle instructions with no user. No need to create CVPLattice state..
[CVP] Handle instructions with no user. No need to create CVPLattice state.
Sep 17 2018, 8:29 AM
trentxintong closed D49108: [CVP] Handle instructions with no user. No need to create CVPLattice state. This handles terminator instructions and more..
Sep 17 2018, 8:29 AM
trentxintong added a comment to D49108: [CVP] Handle instructions with no user. No need to create CVPLattice state. This handles terminator instructions and more..

Ping 2X. Thanks!

Sep 17 2018, 7:49 AM

Sep 13 2018

trentxintong updated the summary of D49108: [CVP] Handle instructions with no user. No need to create CVPLattice state. This handles terminator instructions and more..
Sep 13 2018, 8:57 AM
trentxintong updated the diff for D49108: [CVP] Handle instructions with no user. No need to create CVPLattice state. This handles terminator instructions and more..

collect some numbers on sqlite3.c

Sep 13 2018, 8:56 AM

Sep 12 2018

trentxintong accepted D51998: Do not optimize atomic load to non-atomic memcmp.

LGTM. @efriedma, does this look good to you ? I think we have to have similar treatments for memcpyopt in the past.

Sep 12 2018, 11:02 AM

Sep 11 2018

trentxintong committed rL341974: Add some context to fatal verifier errors.
Add some context to fatal verifier errors
Sep 11 2018, 11:10 AM
trentxintong closed D51386: Add some context to fatal verifier errors.
Sep 11 2018, 11:09 AM

Aug 31 2018

trentxintong added a comment to D51550: Use alias analysis to check for real interference in cascade comparison.

This looks good to me. I will let @courbet to have the final say here.

Aug 31 2018, 10:55 AM

Aug 24 2018

trentxintong abandoned D51219: [OpenMP] Add missing header. va_start, va_end undeclared in gcc 5.5.0.
Aug 24 2018, 10:54 AM
trentxintong added a reviewer for D51219: [OpenMP] Add missing header. va_start, va_end undeclared in gcc 5.5.0: guansong.
Aug 24 2018, 8:35 AM
trentxintong created D51219: [OpenMP] Add missing header. va_start, va_end undeclared in gcc 5.5.0.
Aug 24 2018, 8:25 AM

Aug 22 2018

trentxintong added a comment to D43690: [ThinLTO] Keep available_externally symbols live.

Hello, I wonder if we need to keep linkonce_odr symbols live here as well. I observe a case that a vtable for template class initiated has linkonce_odr linkage and marked dead here, which results compiler crash at WholeProgramDevirt because the global variable for vtable doesn't have initializer (https://github.com/llvm-mirror/llvm/blob/master/lib/Transforms/IPO/WholeProgramDevirt.cpp#L676 assumes that GV has the initializer). Thanks!

I'm not sure why a linkonce_odr GV would be marked non-prevailing. Do you have a minimized example to look at?

Hi @vlad.tsyrklevich, @twoh

I am working on creating a reduced test case. Will get back to you.
Thanks

Hello, I wonder if we need to keep linkonce_odr symbols live here as well. I observe a case that a vtable for template class initiated has linkonce_odr linkage and marked dead here, which results compiler crash at WholeProgramDevirt because the global variable for vtable doesn't have initializer (https://github.com/llvm-mirror/llvm/blob/master/lib/Transforms/IPO/WholeProgramDevirt.cpp#L676 assumes that GV has the initializer). Thanks!

I'm not sure why a linkonce_odr GV would be marked non-prevailing. Do you have a minimized example to look at?

Aug 22 2018, 5:38 PM

Aug 20 2018

trentxintong added a comment to D50066: [IRMover] Don't materialise values from different source module.

@evgeny777
Thanks!. The approach I am considering is to bring in something, like a stub (e.g. the declaration completely unmapped, we cant map it fully anyways) and eventually using it as a handle to RAUW when we have properly mapped in the SGV. Do you think this would work ?

Aug 20 2018, 11:41 AM
trentxintong added a comment to D43690: [ThinLTO] Keep available_externally symbols live.

Hello, I wonder if we need to keep linkonce_odr symbols live here as well. I observe a case that a vtable for template class initiated has linkonce_odr linkage and marked dead here, which results compiler crash at WholeProgramDevirt because the global variable for vtable doesn't have initializer (https://github.com/llvm-mirror/llvm/blob/master/lib/Transforms/IPO/WholeProgramDevirt.cpp#L676 assumes that GV has the initializer). Thanks!

I'm not sure why a linkonce_odr GV would be marked non-prevailing. Do you have a minimized example to look at?

Aug 20 2018, 10:30 AM
trentxintong added a comment to D50066: [IRMover] Don't materialise values from different source module.

@evgeny777 Do you mind I give this bug a try ? Thanks.

Aug 20 2018, 6:27 AM

Aug 12 2018

trentxintong added a comment to D50066: [IRMover] Don't materialise values from different source module.

I dumped the Composite right after the 2nd file is merged. Things look good except the DITemplateValueParameter debuginfo looks a bit odd. Does this look correct to you ?

Aug 12 2018, 10:35 AM

Aug 5 2018

trentxintong committed rL338987: [NFC] Fix typo.
[NFC] Fix typo
Aug 5 2018, 10:04 PM

Jul 26 2018

trentxintong committed rL338104: [NFC] Remove an empty line..
[NFC] Remove an empty line.
Jul 26 2018, 11:51 PM

Jul 21 2018

trentxintong committed rL337654: [ORE] Move loop invariant ORE checks outside the PM loop..
[ORE] Move loop invariant ORE checks outside the PM loop.
Jul 21 2018, 10:28 PM
trentxintong closed D49586: [ORE] Move loop invariant ORE checks outside the PM loop..
Jul 21 2018, 10:28 PM

Jul 19 2018

trentxintong created D49586: [ORE] Move loop invariant ORE checks outside the PM loop..
Jul 19 2018, 7:44 PM

Jul 18 2018

trentxintong committed rL337416: Skip debuginfo intrinsic in markLiveBlocks..
Skip debuginfo intrinsic in markLiveBlocks.
Jul 18 2018, 11:46 AM
trentxintong closed D49337: Skip debuginfo intrinsic in markLiveBlocks..
Jul 18 2018, 11:46 AM

Jul 16 2018

trentxintong added a comment to D47949: [callsitesplit] Limit the # of predecessors walk when recording condition.

@fhahn Thank you for doing this. This is not a blocking issue for us. But it would be nice to have it fixed (for us and the possibly other users of LLVM in general). If you and @davide agree we should do this before having a real fix. I can write a test and land this. Otherwise, I am fine waiting for the real fix.

Jul 16 2018, 11:04 AM
trentxintong updated the diff for D49337: Skip debuginfo intrinsic in markLiveBlocks..

Address comments. Thanks @hfinkel

Jul 16 2018, 7:16 AM

Jul 14 2018

trentxintong added a comment to D49337: Skip debuginfo intrinsic in markLiveBlocks..

This brings about 20ms - 25ms out of ~20s when compile sqlite3.c

Jul 14 2018, 8:55 PM
trentxintong updated the diff for D49337: Skip debuginfo intrinsic in markLiveBlocks..

Update diff addressing all of @hfinkel comments.

Jul 14 2018, 8:53 PM
trentxintong added a comment to D49337: Skip debuginfo intrinsic in markLiveBlocks..

@hfinkel I get what you mean. Basically moving the IntrinsicInst check inside the call does not result us doing extra work when processing IntrinsicInst as we essentially do the same things in the dyn_cast<IntrinsicInst>. I will update the diff accordingly.

Jul 14 2018, 8:28 PM
trentxintong updated the diff for D49337: Skip debuginfo intrinsic in markLiveBlocks..

Address some of @hfinkel suggestions.

Jul 14 2018, 9:54 AM
trentxintong added a comment to D49337: Skip debuginfo intrinsic in markLiveBlocks..

Thank you for taking a look at this code. I agree we should definitely "else" the StoreInst check and I have observed improvements in Xcode Instrument for doing so.

Jul 14 2018, 8:54 AM
trentxintong added a reviewer for D49337: Skip debuginfo intrinsic in markLiveBlocks.: hfinkel.
Jul 14 2018, 8:09 AM

Jul 13 2018

trentxintong created D49337: Skip debuginfo intrinsic in markLiveBlocks..
Jul 13 2018, 9:38 PM
trentxintong added a comment to D49108: [CVP] Handle instructions with no user. No need to create CVPLattice state. This handles terminator instructions and more..

Friendly Ping. Are there any problems with this patch ? Do I need to collect more #s ?

Jul 13 2018, 3:56 PM
trentxintong added inline comments to D48307: [Inliner] Try to inline if some blocks in the callee have address taken, but not used in a meaningful..
Jul 13 2018, 3:36 PM

Jul 9 2018

trentxintong created D49108: [CVP] Handle instructions with no user. No need to create CVPLattice state. This handles terminator instructions and more..
Jul 9 2018, 4:47 PM
trentxintong committed rL336551: [CVP] Handle calls with void return value. No need to create CVPLattice state….
[CVP] Handle calls with void return value. No need to create CVPLattice state…
Jul 9 2018, 7:58 AM
trentxintong closed D49078: [CVP] Handle calls with void return value. No need to create CVPLattice state for it..
Jul 9 2018, 7:58 AM
trentxintong created D49078: [CVP] Handle calls with void return value. No need to create CVPLattice state for it..
Jul 9 2018, 7:33 AM

Jun 22 2018

trentxintong added a comment to D48181: [JumpThreading] Ignore nil destionation when determining whether a block only goes to a single destination.

Hi @brzycki. This is a deficiency in a feature we already have. In jump threading, when we can tell all the predecessors of a block go to the same destination. we do not need to thread, we can just fold the terminator of the block. This has less impact on the CFG and also we do not have the problem of not being able to jump threading because the block can not be duplicated.

Jun 22 2018, 9:41 AM

Jun 21 2018

trentxintong added a comment to D48181: [JumpThreading] Ignore nil destionation when determining whether a block only goes to a single destination.

Friendly ping.

Jun 21 2018, 8:19 AM

Jun 18 2018

trentxintong updated the summary of D48307: [Inliner] Try to inline if some blocks in the callee have address taken, but not used in a meaningful..
Jun 18 2018, 9:15 PM
trentxintong updated the summary of D48307: [Inliner] Try to inline if some blocks in the callee have address taken, but not used in a meaningful..
Jun 18 2018, 9:14 PM
trentxintong updated the summary of D48307: [Inliner] Try to inline if some blocks in the callee have address taken, but not used in a meaningful..
Jun 18 2018, 8:10 PM
trentxintong updated the summary of D48307: [Inliner] Try to inline if some blocks in the callee have address taken, but not used in a meaningful..
Jun 18 2018, 8:02 PM
trentxintong created D48307: [Inliner] Try to inline if some blocks in the callee have address taken, but not used in a meaningful..
Jun 18 2018, 7:57 PM
trentxintong committed rL334993: Revert "Simplify blockaddress usage before giving up in….
Revert "Simplify blockaddress usage before giving up in…
Jun 18 2018, 4:24 PM
trentxintong committed rL334992: Simplify blockaddress usage before giving up in MergeBlockIntoPredecessor.
Simplify blockaddress usage before giving up in MergeBlockIntoPredecessor
Jun 18 2018, 4:04 PM
trentxintong closed D48284: Simplify blockaddress usage before giving up in MergeBlockIntoPredecessor.
Jun 18 2018, 4:03 PM
trentxintong updated the diff for D48284: Simplify blockaddress usage before giving up in MergeBlockIntoPredecessor.

Address @asbirlea comments

Jun 18 2018, 3:50 PM
trentxintong created D48284: Simplify blockaddress usage before giving up in MergeBlockIntoPredecessor.
Jun 18 2018, 9:20 AM

Jun 17 2018

trentxintong abandoned D48256: Fix bug to merge away entry block and update DT correctly..

@dmgreen Thanks for the pointer. I think https://reviews.llvm.org/D48202 will define away the problem. I will abandon this patch.

Jun 17 2018, 1:18 PM
trentxintong added a comment to D48202: Generalize MergeBlockIntoPredecessor. Replace uses of MergeBasicBlockIntoOnlyPred..

I think this makes sense. Except Jumpthreading needs to be modified to make sure iterator is valid after merging. I can work on the jump threading part once this lands and if you do not mind @brzycki.

Jun 17 2018, 1:17 PM
trentxintong added inline comments to D48256: Fix bug to merge away entry block and update DT correctly..
Jun 17 2018, 12:38 PM

Jun 16 2018

trentxintong updated the diff for D48256: Fix bug to merge away entry block and update DT correctly..

Remove some duplicate code.

Jun 16 2018, 1:45 PM
trentxintong added reviewers for D48256: Fix bug to merge away entry block and update DT correctly.: kuhar, efriedma.
Jun 16 2018, 1:12 PM
trentxintong updated the diff for D48256: Fix bug to merge away entry block and update DT correctly..

run clang-format

Jun 16 2018, 1:08 PM
trentxintong created D48256: Fix bug to merge away entry block and update DT correctly..
Jun 16 2018, 1:07 PM

Jun 14 2018

trentxintong updated the diff for D48181: [JumpThreading] Ignore nil destionation when determining whether a block only goes to a single destination.

Handle when all destinations are null (i.e. UNDEF value). There is a slight change in pr22086.ll this is due
to we do not run SimplifyInstructionsInBlock after folding (we run after threading).

Jun 14 2018, 1:20 PM
trentxintong abandoned D48182: [JumpThreading] Make sure UNDEF does not make us think a block can have multiple possible destinations.

I am having some trouble with arc. Created this diff accidentally. Its a duplicate of https://reviews.llvm.org/D48181

Jun 14 2018, 11:45 AM
trentxintong created D48182: [JumpThreading] Make sure UNDEF does not make us think a block can have multiple possible destinations.
Jun 14 2018, 11:43 AM