deadalnix (Amaury SECHET)
User

Projects

User does not belong to any projects.

User Details

User Since
Feb 13 2015, 12:29 AM (144 w, 6 d)

Recent Activity

Fri, Nov 10

deadalnix committed rL317926: [DAGcombine] Do not replace truncate node by itself when doing constant folding….
[DAGcombine] Do not replace truncate node by itself when doing constant folding…
Fri, Nov 10, 1:00 PM

Thu, Nov 9

deadalnix updated the diff for D33863: [DAGComine] (fadd x, undef) -> undef and (fmul x, undef) -> undef.

Make sure we do not transform is x can be Nan, also do the transformation for fsub and add arguments in various tests to make sure they don't get folded and continue to test what they are supposed to.

Thu, Nov 9, 11:10 AM

Oct 14 2017

deadalnix abandoned D18727: Add support for attribute in the C API.

Not relevant anymore.

Oct 14 2017, 6:36 AM
deadalnix abandoned D18733: Add support for attribute for call and invoke instruction in the C API.

This is not relevent anymore.

Oct 14 2017, 6:36 AM

Aug 14 2017

deadalnix committed rL310832: [DAGCombine] Do not try to deduplicate commutative operations if both operand….
[DAGCombine] Do not try to deduplicate commutative operations if both operand…
Aug 14 2017, 4:45 AM
deadalnix closed D33840: [DAGCombine] Do not try to deduplicate commutative operations if both operand are the same. by committing rL310832: [DAGCombine] Do not try to deduplicate commutative operations if both operand….
Aug 14 2017, 4:45 AM

Aug 9 2017

deadalnix added a comment to D33587: [DAGCombine] Do several rounds of combine..

@RKSimon I'll find a way to make that fast, or find an alternative like activating it only in some specific situations. In addition to solving my specific problem, it seems to improve numerous other things, especially for the AMD backend. In any case, I think D33840 is a good thing either way and we should proceed with it.

Aug 9 2017, 2:32 PM

Jul 31 2017

deadalnix updated the diff for D33840: [DAGCombine] Do not try to deduplicate commutative operations if both operand are the same..

rebase

Jul 31 2017, 12:33 PM
deadalnix added a comment to D33840: [DAGCombine] Do not try to deduplicate commutative operations if both operand are the same..

OK, benchmarks. Compiling clang from a bc containing clang in its entierety. With the patch:

Jul 31 2017, 12:31 PM
deadalnix closed D33848: Do not recombine FMA when that is not needed. by committing rL309578: Do not recombine FMA when that is not needed..
Jul 31 2017, 9:57 AM
deadalnix committed rL309578: Do not recombine FMA when that is not needed..
Do not recombine FMA when that is not needed.
Jul 31 2017, 9:57 AM
deadalnix updated the diff for D33848: Do not recombine FMA when that is not needed..

Add comments

Jul 31 2017, 9:53 AM

Jul 29 2017

deadalnix updated the diff for D33848: Do not recombine FMA when that is not needed..

Ping ?

Jul 29 2017, 8:16 AM

Jul 10 2017

deadalnix added a comment to D35192: [ARM] Use ADDCARRY / SUBCARRY.

I see nothing obviously wrong with this patch. It'd be better if someone with more ARM experience than I do could review it.

Jul 10 2017, 10:54 AM
deadalnix added inline comments to D35192: [ARM] Use ADDCARRY / SUBCARRY.
Jul 10 2017, 3:40 AM

Jun 27 2017

deadalnix added a comment to D33840: [DAGCombine] Do not try to deduplicate commutative operations if both operand are the same..

I got sidetracked into some other very urgent project during June. I'll do my best to provide that number as soon as I can. I don't expect the gain, as this, to be that great, but who knows ? What I'm after here is to reduce the impact of D33587 on performances.

Jun 27 2017, 4:47 AM

Jun 22 2017

deadalnix added inline comments to D32368: LLVM C DIBuilder Creation APIs.
Jun 22 2017, 4:13 PM
deadalnix added a comment to D32368: LLVM C DIBuilder Creation APIs.

I have one more comment. It's looking good.

Jun 22 2017, 6:00 AM

Jun 11 2017

deadalnix committed rL305162: [DAGCombine] Make sure we check the ResNo from UADDO before combining.
[DAGCombine] Make sure we check the ResNo from UADDO before combining
Jun 11 2017, 4:37 AM
deadalnix closed D34088: [DAGCombine] Make sure we check the ResNo from UADDO before combining by committing rL305162: [DAGCombine] Make sure we check the ResNo from UADDO before combining.
Jun 11 2017, 4:37 AM
deadalnix created D34088: [DAGCombine] Make sure we check the ResNo from UADDO before combining.
Jun 11 2017, 4:26 AM

Jun 6 2017

deadalnix added a comment to D33901: [Go] Subtypes function.

I don't know go that much so I'll give the opportunity to someone that knows better checks this out.

Jun 6 2017, 4:29 AM

Jun 5 2017

deadalnix added a comment to D33863: [DAGComine] (fadd x, undef) -> undef and (fmul x, undef) -> undef.

So maybe we should change floating point undefs into NaNs and let everything else unfold ?

Jun 5 2017, 12:13 PM
deadalnix added inline comments to D32368: LLVM C DIBuilder Creation APIs.
Jun 5 2017, 11:23 AM
deadalnix added inline comments to D32368: LLVM C DIBuilder Creation APIs.
Jun 5 2017, 11:14 AM
deadalnix added inline comments to D32368: LLVM C DIBuilder Creation APIs.
Jun 5 2017, 10:39 AM
deadalnix added a comment to D33863: [DAGComine] (fadd x, undef) -> undef and (fmul x, undef) -> undef.
  1. My best guess is that it is an oversight, but there would be a reason I'm not aware of.
  2. Yes because of legalization.
  3. The problem i intended to solve was the (fadd constant, undef) where it gets flipped again and again. fsub and fdiv/frem are not commutative ops so that problem doesn't occur with them.
Jun 5 2017, 10:38 AM
deadalnix added inline comments to D33848: Do not recombine FMA when that is not needed..
Jun 5 2017, 10:34 AM

Jun 4 2017

deadalnix added inline comments to D32368: LLVM C DIBuilder Creation APIs.
Jun 4 2017, 2:21 PM

Jun 3 2017

deadalnix created D33863: [DAGComine] (fadd x, undef) -> undef and (fmul x, undef) -> undef.
Jun 3 2017, 7:49 AM
deadalnix committed rL304660: Regenerate expectations for trunc-to-bool.ll . NFC.
Regenerate expectations for trunc-to-bool.ll . NFC
Jun 3 2017, 4:36 AM

Jun 2 2017

deadalnix updated the diff for D33848: Do not recombine FMA when that is not needed..

Do it in all cases.

Jun 2 2017, 1:46 PM
deadalnix created D33848: Do not recombine FMA when that is not needed..
Jun 2 2017, 12:44 PM
deadalnix updated the diff for D33840: [DAGCombine] Do not try to deduplicate commutative operations if both operand are the same..

make comment clearer.

Jun 2 2017, 12:30 PM
deadalnix committed rL304586: Regenerate expectation for wide-fma-contraction.ll . NFC.
Regenerate expectation for wide-fma-contraction.ll . NFC
Jun 2 2017, 12:15 PM
deadalnix created D33840: [DAGCombine] Do not try to deduplicate commutative operations if both operand are the same..
Jun 2 2017, 9:39 AM
deadalnix committed rL304557: Update select.ll expected results. NFC.
Update select.ll expected results. NFC
Jun 2 2017, 9:08 AM
deadalnix committed rL304548: Regenerate sse3.ll test results. NFC.
Regenerate sse3.ll test results. NFC
Jun 2 2017, 7:03 AM
deadalnix committed rL304547: Regenerate and-sink.ll test results. NFC.
Regenerate and-sink.ll test results. NFC
Jun 2 2017, 7:03 AM
deadalnix committed rL304546: Regenerate shrink-compare.ll test results. NFC.
Regenerate shrink-compare.ll test results. NFC
Jun 2 2017, 7:03 AM
deadalnix committed rL304532: nits in TargetLowering.cpp . NFC.
nits in TargetLowering.cpp . NFC
Jun 2 2017, 2:18 AM
deadalnix committed rL304526: Specify triple for xor-icmp.ll ..
Specify triple for xor-icmp.ll .
Jun 2 2017, 12:45 AM
deadalnix committed rL304525: Regenerate expectations for xor-icmp.ll . NFC.
Regenerate expectations for xor-icmp.ll . NFC
Jun 2 2017, 12:25 AM

Jun 1 2017

deadalnix added a comment to D33587: [DAGCombine] Do several rounds of combine..

@inouehrs That wouldn't be the same as this will bail when no more combine is found.
@davide It's more like 3% as far as I can tell. The sad truth here, looking into it, is that there are a lot of combine that and undo themselves and most of the perf hit come from there. These transform are the very reason why i limited the number of iterations to begin with.

Jun 1 2017, 2:44 PM
deadalnix updated the diff for D33587: [DAGCombine] Do several rounds of combine..

Spelling

Jun 1 2017, 12:05 PM
deadalnix committed rL304435: Remove ADDC, ADDE, SUBC, SUBE and SETCCE support from the X86 backend, use the….
Remove ADDC, ADDE, SUBC, SUBE and SETCCE support from the X86 backend, use the…
Jun 1 2017, 10:11 AM
deadalnix closed D33390: Remove ADDC, ADDE, SUBC, SUBE support from the X86 backend, use the CARRY ops instead. by committing rL304435: Remove ADDC, ADDE, SUBC, SUBE and SETCCE support from the X86 backend, use the….
Jun 1 2017, 10:11 AM
deadalnix updated the diff for D33587: [DAGCombine] Do several rounds of combine..

Rebase, fix merge conflicts.

Jun 1 2017, 8:13 AM
deadalnix committed rL304415: Fix addcarry-crash.ll.
Fix addcarry-crash.ll
Jun 1 2017, 7:24 AM
deadalnix committed rL304414: Add regression test for the addcarry crash. See D33770 for context..
Add regression test for the addcarry crash. See D33770 for context.
Jun 1 2017, 7:10 AM
deadalnix committed rL304409: Only generate addcarry node when it is legal..
Only generate addcarry node when it is legal.
Jun 1 2017, 5:03 AM
deadalnix closed D33770: Only generate addcarry node when it is legal. by committing rL304409: Only generate addcarry node when it is legal..
Jun 1 2017, 5:03 AM
deadalnix created D33770: Only generate addcarry node when it is legal..
Jun 1 2017, 4:49 AM
deadalnix committed rL304404: Do not legalize large setcc with setcce, introduce setcccarry and do it with….
Do not legalize large setcc with setcce, introduce setcccarry and do it with…
Jun 1 2017, 4:14 AM
deadalnix closed D33374: Do not legalize large setcc with setcce, introduce setcccarry and do it with usubo/setcccarry. by committing rL304404: Do not legalize large setcc with setcce, introduce setcccarry and do it with….
Jun 1 2017, 4:14 AM
deadalnix updated the diff for D33374: Do not legalize large setcc with setcce, introduce setcccarry and do it with usubo/setcccarry..

Remove setcc change in combineX86ADD .

Jun 1 2017, 4:14 AM
deadalnix committed rL304403: Remove ISD::SETCC match from combineX86ADD. It's done improperly and doesn't….
Remove ISD::SETCC match from combineX86ADD. It's done improperly and doesn't…
Jun 1 2017, 4:13 AM
deadalnix abandoned D29565: [DAGCombiner] (addc X, (adde Y, 0, Carry)) -> (adde X, Y, Carry) when Y + 1 cannot overflow..

This is not relevent anymore.

Jun 1 2017, 4:03 AM
deadalnix abandoned D29443: [DAGCombine] Combine composition of ADDC(ADDE).

This is not relevent anymore.

Jun 1 2017, 3:57 AM
deadalnix added inline comments to D33374: Do not legalize large setcc with setcce, introduce setcccarry and do it with usubo/setcccarry..
Jun 1 2017, 3:50 AM
deadalnix committed rL304402: [DAGCombine] Refactor common addcarry pattern..
[DAGCombine] Refactor common addcarry pattern.
Jun 1 2017, 3:48 AM
deadalnix closed D32756: [DAGCombine] Refactor common addcarry pattern. by committing rL304402: [DAGCombine] Refactor common addcarry pattern..
Jun 1 2017, 3:48 AM
deadalnix committed rL304401: [DAGCombine] (add/uaddo X, Carry) -> (addcarry X, 0, Carry).
[DAGCombine] (add/uaddo X, Carry) -> (addcarry X, 0, Carry)
Jun 1 2017, 3:43 AM
deadalnix closed D32925: [DAGCombine] (add/uaddo X, Carry) -> (addcarry X, 0, Carry) by committing rL304401: [DAGCombine] (add/uaddo X, Carry) -> (addcarry X, 0, Carry).
Jun 1 2017, 3:43 AM

May 31 2017

deadalnix committed rL304291: Regenerate xchg-nofold.ll expected results. NFC..
Regenerate xchg-nofold.ll expected results. NFC.
May 31 2017, 2:44 AM

May 30 2017

deadalnix added a comment to D33677: subtypes for C and OCaml API.

There is an assert within getContainedType so I'm not sure how that's different.

May 30 2017, 12:04 PM
deadalnix added a comment to D33677: subtypes for C and OCaml API.

@whitequark can you explain the use case here ?
@TyanNN what you need to do depends on the use case.

May 30 2017, 11:47 AM
deadalnix updated the diff for D32925: [DAGCombine] (add/uaddo X, Carry) -> (addcarry X, 0, Carry).

Comments

May 30 2017, 10:25 AM
deadalnix added a comment to D33677: subtypes for C and OCaml API.

There is also facilities to do it for pointers and alike, and I assume you need to check what kind of type you are iterating on, because you have no way to know if the index is valid or not when you don't, so I'm not sure what is the use case here. The C++ code seems to use that to do an iterator interface, but there are no iterators in C.

May 30 2017, 8:05 AM
deadalnix added a comment to D33677: subtypes for C and OCaml API.

What's the difference betwenn this and LLVMStructGetTypeAtIndex ?

May 30 2017, 7:47 AM
deadalnix added a comment to D33374: Do not legalize large setcc with setcce, introduce setcccarry and do it with usubo/setcccarry..

@RKSimon I don't think it fit the scope of this diff. Plus I'm not that familiar with these backends, so it'll take time and gate other work.

May 30 2017, 3:51 AM

May 29 2017

deadalnix updated the diff for D32756: [DAGCombine] Refactor common addcarry pattern..

Check result count.

May 29 2017, 12:39 AM

May 28 2017

deadalnix updated the diff for D32925: [DAGCombine] (add/uaddo X, Carry) -> (addcarry X, 0, Carry).

Check the kind of bool being generated as carry.

May 28 2017, 11:57 PM
deadalnix added a comment to D33587: [DAGCombine] Do several rounds of combine..

So on the full clang bc, post optimization:

May 28 2017, 2:26 PM
deadalnix added inline comments to D32756: [DAGCombine] Refactor common addcarry pattern..
May 28 2017, 8:11 AM
deadalnix added a comment to D33587: [DAGCombine] Do several rounds of combine..

Alright so I ended up being able to create a lto build of clang. I'm not sure how to get the bc file to do the benchmarking.

May 28 2017, 7:57 AM

May 27 2017

deadalnix added a comment to D33587: [DAGCombine] Do several rounds of combine..

I'm getting a bunch of

May 27 2017, 6:44 AM

May 26 2017

deadalnix updated the diff for D33374: Do not legalize large setcc with setcce, introduce setcccarry and do it with usubo/setcccarry..

Use getOperationAction as isOperationLegalOrCustom is breaking the AMDGPU backend for some reason. Remove formating change in wide-integer-cmp.ll .

May 26 2017, 8:13 AM
deadalnix added a comment to D33374: Do not legalize large setcc with setcce, introduce setcccarry and do it with usubo/setcccarry..

I don't have a specific plan except it needs to be done and I got to figure out how to do it :)

May 26 2017, 8:06 AM
deadalnix updated the diff for D33390: Remove ADDC, ADDE, SUBC, SUBE support from the X86 backend, use the CARRY ops instead..

Also remove SETCCE .

May 26 2017, 7:41 AM
deadalnix added a comment to D33587: [DAGCombine] Do several rounds of combine..

I usually do not work with clang. Do you have instructions I can follow to get that bc file ?

May 26 2017, 7:31 AM
deadalnix committed rL303989: nits in wide-integer-cmp.ll . NFC.
nits in wide-integer-cmp.ll . NFC
May 26 2017, 6:57 AM
deadalnix added a comment to D33587: [DAGCombine] Do several rounds of combine..

@RKSimon Most of these case aren't because node are not added to the worklist, but because of pattern that are somewhat deep - such as anything depending on KnownBits . Consider the following DAG:

May 26 2017, 2:55 AM
deadalnix updated the diff for D33587: [DAGCombine] Do several rounds of combine..

Improve checks in constant_sextload_v8i16_to_v8i32 .

May 26 2017, 1:34 AM
deadalnix created D33587: [DAGCombine] Do several rounds of combine..
May 26 2017, 1:25 AM
deadalnix added a comment to D33374: Do not legalize large setcc with setcce, introduce setcccarry and do it with usubo/setcccarry..

I'd rather remove it as part of D33390 than this one. Just in case something goes wrong, it'll be easier to revert.

May 26 2017, 1:04 AM
deadalnix updated the diff for D32925: [DAGCombine] (add/uaddo X, Carry) -> (addcarry X, 0, Carry).

Do not match sext and any_ext as this is invalid.

May 26 2017, 1:00 AM
deadalnix added inline comments to D32925: [DAGCombine] (add/uaddo X, Carry) -> (addcarry X, 0, Carry).
May 26 2017, 12:37 AM

May 25 2017

deadalnix updated the diff for D32756: [DAGCombine] Refactor common addcarry pattern..

Ping !

May 25 2017, 1:06 PM
deadalnix updated the diff for D32925: [DAGCombine] (add/uaddo X, Carry) -> (addcarry X, 0, Carry).

Ping ?

May 25 2017, 2:54 AM
deadalnix abandoned D33391: [DAGCombine] fold (add/uaddo (xor a, -1), 1) -> (sub 0, a).

OK I was able to dig more. Something is screwed up with my test case. This is indeed not doing the right thing with the carry.

May 25 2017, 2:48 AM

May 24 2017

deadalnix added a comment to D33391: [DAGCombine] fold (add/uaddo (xor a, -1), 1) -> (sub 0, a).

I have no idea what clang is doing there. It seems like the intrinsic do not map directly to the uaddo/usubo. See for yourself the generated IR (in clang 3.8 that's what I have available ATM):

May 24 2017, 6:03 AM

May 22 2017

deadalnix committed rL303606: Update expected result for or-branch.ll . NFC.
Update expected result for or-branch.ll . NFC
May 22 2017, 10:43 PM
deadalnix added inline comments to D33391: [DAGCombine] fold (add/uaddo (xor a, -1), 1) -> (sub 0, a).
May 22 2017, 8:39 PM
deadalnix committed rL303533: Regenerate expected result for test constant-combines.ll . NFC.
Regenerate expected result for test constant-combines.ll . NFC
May 22 2017, 12:49 AM

May 21 2017

deadalnix committed rL303528: Add a test case for large integer subtraction via subcarry. NFC.
Add a test case for large integer subtraction via subcarry. NFC
May 21 2017, 11:08 PM
deadalnix updated the diff for D33391: [DAGCombine] fold (add/uaddo (xor a, -1), 1) -> (sub 0, a).

Format

May 21 2017, 7:51 PM
deadalnix added a comment to D33391: [DAGCombine] fold (add/uaddo (xor a, -1), 1) -> (sub 0, a).

This kicks in for fold-pcmpeqd-2.ll . Looking at the assembly, things looks good, but I'm not really sure what this test is testing for, so if someone familiar could advice on what to do, that'd be great. @chandlerc , @dblaikie you worked on that, can you advice ?

May 21 2017, 7:43 PM
deadalnix created D33391: [DAGCombine] fold (add/uaddo (xor a, -1), 1) -> (sub 0, a).
May 21 2017, 7:42 PM
deadalnix committed rL303525: Add test case for subcarry optimization..
Add test case for subcarry optimization.
May 21 2017, 7:32 PM