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 (166 w, 1 d)

Recent Activity

Thu, Sep 20

trentxintong committed rL342684: [GlobalDCE] AvailableExternal linkage is checked in isDiscardableIfUnused [NFC]..
[GlobalDCE] AvailableExternal linkage is checked in isDiscardableIfUnused [NFC].
Thu, Sep 20, 2:19 PM
trentxintong closed D52319: [GlobalDCE] AvailableExternal linkage is checked in isDiscardableIfUnused [NFC]..
Thu, Sep 20, 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]..
Thu, Sep 20, 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.

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

Mon, Sep 17

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.
Mon, Sep 17, 8:29 AM
trentxintong closed D49108: [CVP] Handle instructions with no user. No need to create CVPLattice state. This handles terminator instructions and more..
Mon, Sep 17, 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!

Mon, Sep 17, 7:49 AM

Thu, Sep 13

trentxintong updated the summary of D49108: [CVP] Handle instructions with no user. No need to create CVPLattice state. This handles terminator instructions and more..
Thu, Sep 13, 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

Thu, Sep 13, 8:56 AM

Wed, Sep 12

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.

Wed, Sep 12, 11:02 AM

Tue, Sep 11

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

Fri, Aug 31

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.

Fri, Aug 31, 10:55 AM

Fri, Aug 24

trentxintong abandoned D51219: [OpenMP] Add missing header. va_start, va_end undeclared in gcc 5.5.0.
Fri, Aug 24, 10:54 AM

Aug 24 2018

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
trentxintong created D48181: [JumpThreading] Ignore nil destionation when determining whether a block only goes to a single destination.
Jun 14 2018, 11:39 AM

Jun 12 2018

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

@davide @fhahn I am sorry that I cant provide the source code. But one of the cases that resulted in chasing up the chain a lot I can see came from a sequence of object declarations & initializations (constructors which can throw). And they cascaded into a block with 2 predecessors.

Jun 12 2018, 4:53 PM

Jun 8 2018

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

Will do.

Jun 8 2018, 9:27 AM
trentxintong created D47949: [callsitesplit] Limit the # of predecessors walk when recording condition.
Jun 8 2018, 9:07 AM

May 1 2018

trentxintong added a comment to D46279: [LVI] Remove an assert on case which could happen in LazyValueInfo..

And I think adding an assert to check against queries w.r.t. dominance makes sense.

May 1 2018, 10:22 AM
trentxintong added a comment to D46279: [LVI] Remove an assert on case which could happen in LazyValueInfo..

@dberlin @reames I completely agree with the diagnosis and the proposed solution. Let me fix this.

May 1 2018, 10:12 AM

Apr 30 2018

trentxintong created D46279: [LVI] Remove an assert on case which could happen in LazyValueInfo..
Apr 30 2018, 12:03 PM

Apr 24 2018

trentxintong committed rL330688: [LVI] Fix typo. NFC.
[LVI] Fix typo. NFC
Apr 24 2018, 12:41 AM

Apr 23 2018

trentxintong committed rL330641: [CallSiteSplit] Make sure we remove nonnull if the parameter turns out to be a….
[CallSiteSplit] Make sure we remove nonnull if the parameter turns out to be a…
Apr 23 2018, 1:12 PM
trentxintong closed D45608: [CallSiteSplit] Make sure we remove nonnull if the parameter turns out to be a constant..
Apr 23 2018, 1:12 PM
trentxintong updated the diff for D45608: [CallSiteSplit] Make sure we remove nonnull if the parameter turns out to be a constant..

Simplify test. I could not get rid of the inttoptr though.

Apr 23 2018, 1:09 PM

Apr 22 2018

trentxintong added a comment to D45608: [CallSiteSplit] Make sure we remove nonnull if the parameter turns out to be a constant..

Ping. Thanks.

Apr 22 2018, 3:22 PM
trentxintong updated the diff for D45608: [CallSiteSplit] Make sure we remove nonnull if the parameter turns out to be a constant..

Remove empty lines.

Apr 22 2018, 3:22 PM

Apr 17 2018

trentxintong added a comment to D45659: [CallSiteSplitting] Add missing pass dependency.

@davide @fhahn I will take a look!.

Apr 17 2018, 8:35 AM

Apr 14 2018

trentxintong added reviewers for D45659: [CallSiteSplitting] Add missing pass dependency: junbuml, davide, fhahn.
Apr 14 2018, 7:45 PM
trentxintong created D45659: [CallSiteSplitting] Add missing pass dependency.
Apr 14 2018, 7:45 PM

Apr 13 2018

trentxintong added a comment to D45608: [CallSiteSplit] Make sure we remove nonnull if the parameter turns out to be a constant..

Thanks for handling this. Just curious if you see any issue with the non-null attribute in a constant ?

Apr 13 2018, 7:31 AM
trentxintong updated the diff for D45608: [CallSiteSplit] Make sure we remove nonnull if the parameter turns out to be a constant..

Address comments.

Apr 13 2018, 7:31 AM

Apr 12 2018

trentxintong retitled D45608: [CallSiteSplit] Make sure we remove nonnull if the parameter turns out to be a constant. from [CallSiteSplit] Make sure we remove any non-nullness if the paramater turns out to be a constant, i.e. more constrained than non-null to [CallSiteSplit] Make sure we remove nonnull if the parameter turns out to be a constant..
Apr 12 2018, 10:08 PM
trentxintong created D45608: [CallSiteSplit] Make sure we remove nonnull if the parameter turns out to be a constant..
Apr 12 2018, 10:04 PM
trentxintong committed rL329987: [CallSiteSplit] Fix comment. NFC.
[CallSiteSplit] Fix comment. NFC
Apr 12 2018, 9:40 PM

Apr 9 2018

trentxintong committed rL329572: [MergeICmp] Update debug msg.NFC.
[MergeICmp] Update debug msg.NFC
Apr 9 2018, 7:32 AM
trentxintong committed rL329564: [MergeICmp] Split blocks that do other work..
[MergeICmp] Split blocks that do other work.
Apr 9 2018, 6:17 AM
This revision was not accepted when it landed; it landed in state Needs Review.
Apr 9 2018, 6:17 AM
trentxintong updated the diff for D44443: [MergeICmp] Split blocks that do other work..

Address stylistic comments.

Apr 9 2018, 6:17 AM

Apr 8 2018

trentxintong committed rL329530: [LIR] Reorder header. NFC.
[LIR] Reorder header. NFC
Apr 8 2018, 6:24 AM

Apr 6 2018

trentxintong added a comment to D44443: [MergeICmp] Split blocks that do other work..

@courbet Ping. Thanks

Apr 6 2018, 8:19 AM
trentxintong updated the diff for D44443: [MergeICmp] Split blocks that do other work..

Update checks in a test case.

Apr 6 2018, 8:14 AM
trentxintong updated the diff for D44443: [MergeICmp] Split blocks that do other work..

Simplify how split instructions are moved.

Apr 6 2018, 8:06 AM

Mar 27 2018

trentxintong committed rL328660: 80-line wrap. NFC.
80-line wrap. NFC
Mar 27 2018, 12:47 PM
trentxintong updated the diff for D44443: [MergeICmp] Split blocks that do other work..

Update an assert.

Mar 27 2018, 12:43 PM
trentxintong updated the diff for D44443: [MergeICmp] Split blocks that do other work..

Address comment.

Mar 27 2018, 7:25 AM

Mar 20 2018

trentxintong committed rL327972: [MergeICmps] Break eargerly out of loop.
[MergeICmps] Break eargerly out of loop
Mar 20 2018, 5:06 AM
trentxintong committed rL327971: [MergeICmp] Fix a bug in entry block shuffled to middle of the chain.
[MergeICmp] Fix a bug in entry block shuffled to middle of the chain
Mar 20 2018, 5:02 AM