deadalnix (Amaury SECHET)
User

Projects

User does not belong to any projects.

User Details

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

Recent Activity

Feb 23 2018

deadalnix committed rL325892: [DAGCOmbine] Ensure that (brcond (setcc ...)) is handled in a canonical manner..
[DAGCOmbine] Ensure that (brcond (setcc ...)) is handled in a canonical manner.
Feb 23 2018, 3:54 AM
deadalnix closed D41235: [DAGCOmbine] Ensure that (brcond (setcc ...)) is handled in a canonical manner..
Feb 23 2018, 3:54 AM
deadalnix updated the diff for D41235: [DAGCOmbine] Ensure that (brcond (setcc ...)) is handled in a canonical manner..

Add bugfix for Hexagon and rebase

Feb 23 2018, 3:46 AM

Jan 31 2018

deadalnix committed rL323899: [X86] Generate testl instruction through truncates..
[X86] Generate testl instruction through truncates.
Jan 31 2018, 11:22 AM
deadalnix closed D42741: [X86] Generate testl instruction through truncates..
Jan 31 2018, 11:22 AM
deadalnix updated the diff for D42741: [X86] Generate testl instruction through truncates..

Add a comment to explain the check for MVT::i16 .

Jan 31 2018, 11:22 AM
deadalnix added a comment to D42741: [X86] Generate testl instruction through truncates..

@niravd I added a test case in rL323868 . The problem was by trying to extract the lower 32 bits of a 16 bit register, which is obviously not possible.

Jan 31 2018, 8:59 AM
deadalnix committed rL323888: [X86] Avoid using high register trick for test instruction.
[X86] Avoid using high register trick for test instruction
Jan 31 2018, 8:51 AM
deadalnix closed D42646: [X86] Avoid using high register trick for test instruction.
Jan 31 2018, 8:51 AM
deadalnix added a dependent revision for D42646: [X86] Avoid using high register trick for test instruction: D42741: [X86] Generate testl instruction through truncates..
Jan 31 2018, 8:25 AM
deadalnix created D42741: [X86] Generate testl instruction through truncates..
Jan 31 2018, 8:25 AM
deadalnix updated the diff for D42646: [X86] Avoid using high register trick for test instruction.

Reduce the diff to simply avoid doing the high register trick.
It turns out that there is a bug in the other optimization made in the orginal diff, so it seems like a better idea to split that out in several smaller steps to ensure progress.

Jan 31 2018, 5:16 AM
deadalnix committed rL323868: Add a regression test for problems caused by D42646 . NFC.
Add a regression test for problems caused by D42646 . NFC
Jan 31 2018, 5:05 AM

Jan 30 2018

deadalnix abandoned D42615: [X86] Generate BT instrutions a bit more agressively.

Ok sounds like this isn't the right approach, closing this one.

Jan 30 2018, 1:44 PM
deadalnix committed rL323748: Change simple-register-allocation-read-undef.mir so that it doesn't fail if the….
Change simple-register-allocation-read-undef.mir so that it doesn't fail if the…
Jan 30 2018, 3:10 AM

Jan 29 2018

deadalnix committed rL323690: [X86] Avoid using high register trick for test instruction.
[X86] Avoid using high register trick for test instruction
Jan 29 2018, 12:56 PM
deadalnix closed D42646: [X86] Avoid using high register trick for test instruction.
Jan 29 2018, 12:56 PM
deadalnix updated the diff for D42646: [X86] Avoid using high register trick for test instruction.

Remove leftover DEBUG

Jan 29 2018, 12:55 PM
deadalnix added inline comments to D42646: [X86] Avoid using high register trick for test instruction.
Jan 29 2018, 12:42 PM
deadalnix updated the diff for D42646: [X86] Avoid using high register trick for test instruction.

Remove TEST8ri_NOREX
Merge codepath for testl and testw

Jan 29 2018, 12:35 PM
deadalnix committed rL323687: [X86] Add test case to ensure testw is generated when optimizing for size. NFC.
[X86] Add test case to ensure testw is generated when optimizing for size. NFC
Jan 29 2018, 12:25 PM
deadalnix added a comment to D41235: [DAGCOmbine] Ensure that (brcond (setcc ...)) is handled in a canonical manner..

@niravd It is rebased on top of D42615 . Alternatively, it can be rebased on top of D42646 with identical results as, as per discussion with @craig.topper , the test instruction has higher throughput than bt so maybe that's a preferable solution. Either way, the high register trick problem has been identified and there are several possible solutions.

Jan 29 2018, 8:32 AM
deadalnix created D42646: [X86] Avoid using high register trick for test instruction.
Jan 29 2018, 8:27 AM
deadalnix committed rL323663: Add test case for truncated and promotion to test. NFC.
Add test case for truncated and promotion to test. NFC
Jan 29 2018, 8:14 AM
deadalnix added inline comments to D42618: [LLVM-C] Add Accessors For A Module's Source File Name.
Jan 29 2018, 4:00 AM

Jan 28 2018

deadalnix added a comment to D42615: [X86] Generate BT instrutions a bit more agressively.

On a second look, when disabling this trick, I only get improvement in various test cases. I'm not sure what's the impact in real source code is, but I'm not convinced this trick is worth doing at all at this stage.

Jan 28 2018, 3:37 PM
deadalnix added a comment to D42615: [X86] Generate BT instrutions a bit more agressively.

Looks like this end up being a problem when the value is in EDI due to calling convention. So a few question come to mind:
1/ Shouldn't this optimization be done only after register allocation, if the selected register allows for it ? This would cause it to fail once in a while because the register allocator do not chose the proper register, but it's probably preferable to the extra copies.
2/ Is that possible to hint the register allocator that something is desirable ? For instance, that we would like this value to be in a GR8_NOREX register, but if that's not the case, don't create a copy for it ?

Jan 28 2018, 1:23 PM

Jan 27 2018

deadalnix added a comment to D41235: [DAGCOmbine] Ensure that (brcond (setcc ...)) is handled in a canonical manner..

@niravd After proposing D42615 , it seems like using test instead of bt is the right thing to do as it has higher throughput - unless more work is required to materialize the constant. There is a bug in the materialization of test that cause it to sometime create needless copy. This needs to be fixed, regardless of what this diff does. I think we should proceed with this one.

Jan 27 2018, 2:38 PM
deadalnix added a comment to D42615: [X86] Generate BT instrutions a bit more agressively.

@craig.topper I had no idea bt has lower throughput than test, I assumed it was the same. If that's the case, then this approach doesn't make much sense.

Jan 27 2018, 1:21 PM
deadalnix updated the diff for D41235: [DAGCOmbine] Ensure that (brcond (setcc ...)) is handled in a canonical manner..

Rebase on top of D42615, which ensure there are no more regression for pattern involving test/bt.

Jan 27 2018, 11:35 AM
deadalnix created D42615: [X86] Generate BT instrutions a bit more agressively.
Jan 27 2018, 11:34 AM
deadalnix committed rL323596: Regenerate test result for vastart-defs-eflags.ll. NFC..
Regenerate test result for vastart-defs-eflags.ll. NFC.
Jan 27 2018, 9:56 AM
deadalnix committed rL323595: Regenerate test result for testb-je-fusion.ll. NFC..
Regenerate test result for testb-je-fusion.ll. NFC.
Jan 27 2018, 9:22 AM
deadalnix committed rL323594: Regenerate test result for stateppint-vector.ll. NFC..
Regenerate test result for stateppint-vector.ll. NFC.
Jan 27 2018, 9:18 AM
deadalnix committed rL323593: Regenrate brcond.ll test results. NFC.
Regenrate brcond.ll test results. NFC
Jan 27 2018, 8:59 AM
deadalnix committed rL323592: Regenrate test results for avx-brcond.ll . NFC.
Regenrate test results for avx-brcond.ll . NFC
Jan 27 2018, 8:45 AM
deadalnix committed rL323588: Regenerate test results for and-su.ll . NFC.
Regenerate test results for and-su.ll . NFC
Jan 27 2018, 8:01 AM

Jan 1 2018

deadalnix added inline comments to D41235: [DAGCOmbine] Ensure that (brcond (setcc ...)) is handled in a canonical manner..
Jan 1 2018, 5:10 PM

Dec 14 2017

deadalnix created D41235: [DAGCOmbine] Ensure that (brcond (setcc ...)) is handled in a canonical manner..
Dec 14 2017, 6:10 AM
deadalnix added a comment to D35192: [ARM] Use ADDCARRY / SUBCARRY.

Congrats !

Dec 14 2017, 6:06 AM

Dec 13 2017

deadalnix committed rL320602: Regenerate test-shrink.ll test results. NFC.
Regenerate test-shrink.ll test results. NFC
Dec 13 2017, 10:05 AM

Nov 10 2017

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…
Nov 10 2017, 1:00 PM

Nov 9 2017

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.

Nov 9 2017, 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