congh (Cong Hou)
User

Projects

User does not belong to any projects.

User Details

User Since
Apr 8 2015, 4:51 PM (180 w, 5 d)

Recent Activity

May 16 2016

congh accepted D20288: Fix for PR27750. Correctly handle the case where the FallThrough block == TBB in getFallThroughMBB..

LGTM. Thanks for the fix, David!

May 16 2016, 10:16 AM

Mar 23 2016

congh updated the diff for D14840: [X86] Detect SAD patterns and emit psadbw instructions on X86..

Update the patch according to Simon's comments.

Mar 23 2016, 2:15 PM
congh added a comment to D14840: [X86] Detect SAD patterns and emit psadbw instructions on X86..

Minor clanup request.

Also, can you get rid of the stack instructions in the test (nounwind?)

Mar 23 2016, 2:15 PM

Mar 18 2016

congh added a comment to D14840: [X86] Detect SAD patterns and emit psadbw instructions on X86..

Ping?

Mar 18 2016, 2:44 PM

Mar 11 2016

congh updated the diff for D14840: [X86] Detect SAD patterns and emit psadbw instructions on X86..

Update the patch according to Simon's comments.

Mar 11 2016, 3:15 PM
congh added a comment to D14840: [X86] Detect SAD patterns and emit psadbw instructions on X86..

What would be necessary to enable PSADBW to match for SSE2 in the 32i8/64i8 cases (and AVX2/AVX512F in the 64i8 case)?

Mar 11 2016, 3:14 PM

Mar 10 2016

congh updated the diff for D14840: [X86] Detect SAD patterns and emit psadbw instructions on X86..

Update the patch according to Simon and Chandler's comments.

Mar 10 2016, 3:31 PM
congh added a comment to D14840: [X86] Detect SAD patterns and emit psadbw instructions on X86..

Simon and Ahmed seem to have a good handle on this, just wanted to say...

The checks on the tests are quite poor - I understand that update_llc_test_checks.py output might be too much but please see if you can expand the checks to give a better idea of context.

I would strongly encourage folks to use update_llc_test_checks.py. If it's not working here, we should make a version that does work. The resulting test accuracy is just such a huge improvement.

Mar 10 2016, 3:31 PM
congh updated the diff for D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..

Update the patch according to Chandler's comments.

Mar 10 2016, 1:37 PM
congh added a comment to D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..

Thanks for the review, Chandler!

Mar 10 2016, 1:36 PM

Mar 7 2016

congh updated the diff for D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..

Update the patch according to David and Sanjay's comments.

Mar 7 2016, 5:48 PM
congh added a comment to D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..

To be clear, I was only suggesting that you get another reviewer for the change in include/llvm/Target/TargetInstrInfo.h. I would like someone to confirm that we can reasonably expect the MBB CFG information to be valid when AnalyzeBranch and InsertBranch are called. Aside from that, I am comfortable approving the rest of the patch myself. As for who should review the TargetInstrInfo.h change, maybe Sanjay or Nadav can do that? Also, CODE_OWNERS.TXT lists Evan Cheng as the CodeGen owner, though I don't know how up-to-date that is.

Evan's info is out-of-date. I don't know enough about this to approve, but I tried to understand the patch via the testcases:

  1. I updated test/CodeGen/X86/fp-une-cmp.ll so it would be easier to see the change. Cong, please update this patch after r262875.
Mar 7 2016, 5:47 PM
congh added a comment to D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..

Thanks for following up on this. I just have a couple minor additional commenting suggestions.

To be clear, I was only suggesting that you get another reviewer for the change in include/llvm/Target/TargetInstrInfo.h. I would like someone to confirm that we can reasonably expect the MBB CFG information to be valid when AnalyzeBranch and InsertBranch are called. Aside from that, I am comfortable approving the rest of the patch myself. As for who should review the TargetInstrInfo.h change, maybe Sanjay or Nadav can do that? Also, CODE_OWNERS.TXT lists Evan Cheng as the CodeGen owner, though I don't know how up-to-date that is.

Mar 7 2016, 5:35 PM

Mar 4 2016

congh updated the diff for D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..

Update the patch according to David's comments.

Mar 4 2016, 4:00 PM
congh added a comment to D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..

Thanks for the fixes! Just a few more minor issues.

Regarding my suggestion to modify the comments for InsertBranch/AnalyzeBranch: I would recommend that after doing so you run the change by the current CodeGen code owner for approval, since you are adding a dependence that doesn't currently exist, namely that these routines expect the CFG links in MachineBasicBlock to be up-to-date.

Mar 4 2016, 3:53 PM

Mar 2 2016

congh added inline comments to D17830: [MBP] Avoid placing random blocks between loop preheader and header.
Mar 2 2016, 4:40 PM
congh accepted D17830: [MBP] Avoid placing random blocks between loop preheader and header.

Great fix! Then we can ignore any predecessors in the same chain and treat the chain as a single node, in which case the chain should always be a loop chain.

Mar 2 2016, 4:00 PM

Feb 29 2016

congh added a comment to D14840: [X86] Detect SAD patterns and emit psadbw instructions on X86..

Both comments addressed. PTAL.

Feb 29 2016, 2:02 PM
congh updated the diff for D14840: [X86] Detect SAD patterns and emit psadbw instructions on X86..

Update the patch according to Ahmed's comments.

Feb 29 2016, 2:01 PM

Feb 26 2016

congh updated the diff for D14840: [X86] Detect SAD patterns and emit psadbw instructions on X86..

Update the patch according to Ahmed's comments.

Feb 26 2016, 4:34 PM
congh added a comment to D14840: [X86] Detect SAD patterns and emit psadbw instructions on X86..

Thanks for the review! Please check my inline comments.

Feb 26 2016, 4:33 PM

Feb 24 2016

congh added a comment to D14840: [X86] Detect SAD patterns and emit psadbw instructions on X86..

Ping?

Feb 24 2016, 3:47 PM

Feb 16 2016

congh retitled D14840: [X86] Detect SAD patterns and emit psadbw instructions on X86. from Detect SAD patterns and emit psadbw instructions on X86. to [X86] Detect SAD patterns and emit psadbw instructions on X86..
Feb 16 2016, 11:12 PM
congh updated the diff for D14840: [X86] Detect SAD patterns and emit psadbw instructions on X86..

Update the patch.

Feb 16 2016, 11:09 PM
congh added a comment to D15250: Detecte vector reduction operations just before instruction selection..

Please make sure the select case if handled (autovectorization test case provided below); otherwise, LGTM. Thanks!

Feb 16 2016, 10:21 PM

Jan 29 2016

congh added inline comments to D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..
Jan 29 2016, 4:39 PM
congh updated the diff for D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..

Update the patch according to David's comment.

Jan 29 2016, 4:37 PM
congh added a comment to D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..

Thanks for the fixes and for cleaning up the unnecessary conditions. I still think the FBB==nullptr case is broken in the COND_E_AND_NP detection code, but otherwise, this looks good.

Did you get reproducers for the failures that people were seeing with this patch? Do these fixes solve them?

Jan 29 2016, 4:36 PM

Jan 28 2016

congh added a comment to D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..

Thanks for the review, David!

Jan 28 2016, 11:32 AM
congh updated the diff for D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..

Update the patch according to David's comments.

Jan 28 2016, 11:32 AM

Jan 26 2016

congh added a comment to D15250: Detecte vector reduction operations just before instruction selection..

Ping?

Jan 26 2016, 2:37 PM

Jan 22 2016

congh added inline comments to D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..
Jan 22 2016, 4:10 PM
congh updated the diff for D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..

Update a test case.

Jan 22 2016, 4:10 PM
congh updated the diff for D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..

Update the patch according to David's comments.

Jan 22 2016, 3:26 PM
congh added a comment to D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..

For the new suggested test case, I am thinking a code with

%cmp = fcmp une float %f, 0.000000e+00
br i1 %cmp, label %if.then, label %if.end

With the branch probably annotated with profile data to enable the reordering we want.

Jan 22 2016, 3:26 PM
congh updated the diff for D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..

Update the patch according to David's comment.

Jan 22 2016, 11:38 AM
congh added inline comments to D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..
Jan 22 2016, 11:36 AM
congh added a comment to D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..

Can we also add a test case that test this:

jcc1 BB1
jncc2 BB2

BB1: // cold
...
BB2:
..

can be ordered
correctly into
jxxx ...
jxxx ...
BB2:
...
BB1:

Jan 22 2016, 11:26 AM
congh abandoned D13745: Replace all uses of branch weights by branch probabilities on machine code level passes..

OK, I am abandoning this patch now..

Jan 22 2016, 10:44 AM

Jan 20 2016

congh updated the diff for D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..

Detect COND_P_AND_NE and COND_E_AND_NP with the constraint that the two jumping targets are different.

Jan 20 2016, 1:59 PM
congh added inline comments to D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..
Jan 20 2016, 1:47 PM

Jan 19 2016

congh updated the diff for D15250: Detecte vector reduction operations just before instruction selection..

Update the patch according to Hal's comments.

Jan 19 2016, 12:58 PM
congh added inline comments to D15250: Detecte vector reduction operations just before instruction selection..
Jan 19 2016, 12:56 PM

Jan 14 2016

congh added inline comments to D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..
Jan 14 2016, 1:17 PM
congh added inline comments to D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..
Jan 14 2016, 12:32 PM

Jan 13 2016

congh added inline comments to D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..
Jan 13 2016, 4:07 PM
congh added inline comments to D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..
Jan 13 2016, 3:37 PM
congh updated the diff for D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..

Update the patch according to David's comments.

Jan 13 2016, 3:37 PM

Jan 12 2016

congh updated the diff for D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..

Update the patch by bringing back the condition reversal optimization in AnalyzeBranch().

Jan 12 2016, 1:22 PM

Jan 11 2016

congh added a comment to D11393: [X86] Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed..

Restart discussion on this thread:

For the motivating example where two conditional branches have different targets,

jne .BB1
jnp .BB2
.BB1:
...
.BB2:
...

Is it possible to teach AnalyzeBranch to recognize the pattern -- with opcode COND_NE_OR_P ?

Jan 11 2016, 4:59 PM

Jan 6 2016

congh added a comment to D15250: Detecte vector reduction operations just before instruction selection..

One minor think I noticed, but overall I don't know this code well enough to review, sorry.

Jan 6 2016, 12:53 PM
congh added inline comments to D15250: Detecte vector reduction operations just before instruction selection..
Jan 6 2016, 12:52 PM
congh updated the diff for D15250: Detecte vector reduction operations just before instruction selection..

Added a fall-through comment as suggested by Simon.

Jan 6 2016, 12:52 PM

Jan 4 2016

congh added a comment to D15250: Detecte vector reduction operations just before instruction selection..

Ping?

Jan 4 2016, 11:32 AM

Dec 22 2015

congh added inline comments to D15519: Replace weights by probabilities in BPI..
Dec 22 2015, 10:38 AM
congh updated the diff for D15519: Replace weights by probabilities in BPI..

Update the patch according to David's comment.

Dec 22 2015, 10:35 AM

Dec 21 2015

congh updated the diff for D15519: Replace weights by probabilities in BPI..

Update on David's comments.

Dec 21 2015, 4:58 PM
congh added inline comments to D15519: Replace weights by probabilities in BPI..
Dec 21 2015, 4:57 PM
congh added a comment to D14588: [X86][SSE] Transform truncation from v8i32/v16i32 to v8i8/v16i8 into bitand and X86ISD::PACKUS operations during DAG combine..

Thanks a lot for the review, Simon!

Dec 21 2015, 11:38 AM

Dec 18 2015

congh updated the diff for D15519: Replace weights by probabilities in BPI..

Remove an unnecessary std::max<uint32_t>.

Dec 18 2015, 2:26 PM
congh updated the diff for D15519: Replace weights by probabilities in BPI..

Update on David'd comments.

Dec 18 2015, 2:24 PM
congh added inline comments to D15519: Replace weights by probabilities in BPI..
Dec 18 2015, 2:23 PM
congh added inline comments to D15519: Replace weights by probabilities in BPI..
Dec 18 2015, 2:02 PM
congh added a comment to D15489: Use getEdgeProbability() instead of getEdgeWeight() in BFI and remove getEdgeWeight() interfaces from MBPI..

Looks good to me, but make sure AutoFDO handles (0 weight) case as well.

Dec 18 2015, 1:21 PM
congh added a comment to D15250: Detecte vector reduction operations just before instruction selection..

Ping again?

Dec 18 2015, 12:07 PM
congh added a comment to D14588: [X86][SSE] Transform truncation from v8i32/v16i32 to v8i8/v16i8 into bitand and X86ISD::PACKUS operations during DAG combine..

Ping again?

Dec 18 2015, 12:07 PM

Dec 17 2015

congh added a comment to D15604: Changes in conversion cost model for X86 target.

This patch overall looks very nice! Please check my inline comments.

Dec 17 2015, 4:08 PM
congh updated the diff for D15548: Remove the restriction that known and unknown probabilities cannot coexist when being normalized..

Update the patch on David' comment.

Dec 17 2015, 2:13 PM
congh added inline comments to D15548: Remove the restriction that known and unknown probabilities cannot coexist when being normalized..
Dec 17 2015, 2:12 PM

Dec 16 2015

congh added a comment to D15548: Remove the restriction that known and unknown probabilities cannot coexist when being normalized..

While it makes sense to do this -- can we start to teach producers not to pass unknown Probabilities in the first place?

Dec 16 2015, 10:41 AM

Dec 15 2015

congh retitled D15548: Remove the restriction that known and unknown probabilities cannot coexist when being normalized. from to Remove the restriction that known and unknown probabilities cannot coexist when being normalized..
Dec 15 2015, 4:26 PM
congh added a comment to D14588: [X86][SSE] Transform truncation from v8i32/v16i32 to v8i8/v16i8 into bitand and X86ISD::PACKUS operations during DAG combine..

Ping?

Dec 15 2015, 3:35 PM

Dec 14 2015

congh retitled D15519: Replace weights by probabilities in BPI. from to Replace weights by probabilities in BPI..
Dec 14 2015, 10:10 PM
congh added a comment to D15250: Detecte vector reduction operations just before instruction selection..

Ping?

Dec 14 2015, 8:45 PM
congh added inline comments to D15489: Use getEdgeProbability() instead of getEdgeWeight() in BFI and remove getEdgeWeight() interfaces from MBPI..
Dec 14 2015, 5:16 PM
congh updated the diff for D15489: Use getEdgeProbability() instead of getEdgeWeight() in BFI and remove getEdgeWeight() interfaces from MBPI..

Change the name convertBranchProbabilityToWeight() into getWeightFromBranchProb().

Dec 14 2015, 4:03 PM
congh added inline comments to D15489: Use getEdgeProbability() instead of getEdgeWeight() in BFI and remove getEdgeWeight() interfaces from MBPI..
Dec 14 2015, 4:01 PM
congh added inline comments to D15489: Use getEdgeProbability() instead of getEdgeWeight() in BFI and remove getEdgeWeight() interfaces from MBPI..
Dec 14 2015, 3:47 PM
congh updated the diff for D15489: Use getEdgeProbability() instead of getEdgeWeight() in BFI and remove getEdgeWeight() interfaces from MBPI..

Update the patch according to David's comment.

Dec 14 2015, 3:47 PM
congh retitled D15489: Use getEdgeProbability() instead of getEdgeWeight() in BFI and remove getEdgeWeight() interfaces from MBPI. from to Use getEdgeProbability() instead of getEdgeWeight() in BFI and remove getEdgeWeight() interfaces from MBPI..
Dec 14 2015, 2:34 AM

Dec 13 2015

congh added inline comments to rL255455: Normalize MBB's successors' probabilities in several locations..
Dec 13 2015, 9:04 AM
congh added inline comments to rL255455: Normalize MBB's successors' probabilities in several locations..
Dec 13 2015, 8:56 AM

Dec 12 2015

congh added inline comments to D15177: [LoopVectorizer] Refine loop vectorizer's register usage calculator by ignoring specific instructions..
Dec 12 2015, 5:00 PM
congh updated the diff for D15177: [LoopVectorizer] Refine loop vectorizer's register usage calculator by ignoring specific instructions..

Update the patch according to Hal's comment.

Dec 12 2015, 4:59 PM
congh added inline comments to D15177: [LoopVectorizer] Refine loop vectorizer's register usage calculator by ignoring specific instructions..
Dec 12 2015, 4:59 PM
congh added inline comments to D15477: [X86][AVX] Only shuffle the lower half of vectors if the upper half is undefined.
Dec 12 2015, 2:57 PM

Dec 11 2015

congh added inline comments to D15177: [LoopVectorizer] Refine loop vectorizer's register usage calculator by ignoring specific instructions..
Dec 11 2015, 3:35 PM
congh updated the diff for D15177: [LoopVectorizer] Refine loop vectorizer's register usage calculator by ignoring specific instructions..

Update the patch based on Hal's comments.

Dec 11 2015, 3:35 PM
congh added inline comments to D15250: Detecte vector reduction operations just before instruction selection..
Dec 11 2015, 10:45 AM

Dec 10 2015

congh added inline comments to D15250: Detecte vector reduction operations just before instruction selection..
Dec 10 2015, 4:18 PM
congh updated the diff for D15250: Detecte vector reduction operations just before instruction selection..

Update the patch according to Hal's comments.

Dec 10 2015, 4:18 PM
congh added inline comments to D15250: Detecte vector reduction operations just before instruction selection..
Dec 10 2015, 2:53 PM
congh updated the diff for D15259: Normalize MBB's successors' probabilities in several locations..

Update the patch according to David's comment.

Dec 10 2015, 2:36 PM
congh added inline comments to D15259: Normalize MBB's successors' probabilities in several locations..
Dec 10 2015, 2:35 PM
congh added a comment to D15259: Normalize MBB's successors' probabilities in several locations..

Are there any test case changes?

Dec 10 2015, 2:18 PM

Dec 9 2015

congh updated the diff for D15132: [X86][SSE] Update the cost table for integer-integer conversions on SSE2..

Update the patch by adding a cost table for SSE4.1. The test case is also updated accordingly.

Dec 9 2015, 5:19 PM
congh added inline comments to D15132: [X86][SSE] Update the cost table for integer-integer conversions on SSE2..
Dec 9 2015, 5:19 PM
congh added inline comments to D14588: [X86][SSE] Transform truncation from v8i32/v16i32 to v8i8/v16i8 into bitand and X86ISD::PACKUS operations during DAG combine..
Dec 9 2015, 4:52 PM
congh updated the diff for D14588: [X86][SSE] Transform truncation from v8i32/v16i32 to v8i8/v16i8 into bitand and X86ISD::PACKUS operations during DAG combine..

The previous update is incorrect. Update it again.

Dec 9 2015, 4:50 PM
congh updated the diff for D14588: [X86][SSE] Transform truncation from v8i32/v16i32 to v8i8/v16i8 into bitand and X86ISD::PACKUS operations during DAG combine..

Update a test case as suggested by Simon.

Dec 9 2015, 4:49 PM