- User Since
- Feb 13 2015, 12:29 AM (380 w, 1 d)
Wed, May 18
@RKSimon It is good to go, the main problem here is that I don't have a test case for it in isolation, and I have been struggling to get the pieces in where this really shines (mostly related to process the DAG topologically).
Sat, May 7
This is lacking a test. The LLVM C API is typically tested using the echo test (a program that read LLVM IR with the LLVM C API, and the re-emit it, and it can be checked that both are equal).
Do you need help merging this?
I will land this for you, no problem.
Ok, this looks like it is good to go then. @RKSimon , if this is good for you, then we shoudl land this.
Fri, May 6
Wed, May 4
Mon, May 2
Rebase on top of D124756 .
Keep the unoptimized test case.
Sun, May 1
Update for the monorepo
Sat, Apr 30
Hi @aykevl . I unfortunately am not familiar with thin LTO, so it is very difficult for me to review this. Maybe @mehdi_amini could help? I know he worked on this at some point, and if he cannot, he'll know who can.
Jan 1 2022
Oct 15 2021
Oct 14 2021
Wouldn't LLVMBuildBinOp build a constant if both operand are constant and the operation allows for it? I have not double checked, but I think it does. Considering this, I'm not really sure what this brings to the table.
I think using nullptr would be preferable, but this looks good. Thanks.
This is something that I wanted to do for a long but never had time to. Thanks.
It would be good to have a test case for this.
Oct 13 2021
Oct 12 2021
Dec 9 2019
Dec 2 2019
Nov 24 2019
That is indeed the step I was missing. Thanks everybody for getting me up to speed.
Nov 23 2019
Alright, this is the first time I have to commit something with the new github process, and I have to admit, I do not know how to do it - or if I can do it at all. Running git llvm push ask me for a username and password, and my old one do not work. What's the next step for me here?
Nov 22 2019
Address some of the comments
Nov 20 2019
I'm a bit late to the party, but this is nothing short of amazing. Congratulations!
Nov 19 2019
Also while I'm at it, first sorry for taking so long to review, I missed that patch. Second, if I understand properly, getting node to be processed in the right order actually can collapse arbitrary long addition chains, but it's not clear how to get there, there is a bit of a wack a mole problem that start poping up every time.
Can you please explain a bit more what this is doing? This seems interesting, but I'm not quite sure the pattern is correct.
Oct 22 2019
O => Op
It's indeed not clear if what you have is the result of the legalizer. In this case just proceed.
Add a few comments
Oct 10 2019
Rebase and ping.
Oct 8 2019
Fix erroneously inverted condition and ensuring previously broken tests are now passing again.
Add test for vector - but nothing changes for them (see rL374043 ) and use isSubsetOf and getAllOnesValue.
Oct 7 2019
Oct 6 2019
Oct 2 2019
Use isConstOrConstSplat and getAPIntValue
Sep 30 2019
Rebase on top of NFC changes
Sep 29 2019
Sep 19 2019
Sep 3 2019
Aug 31 2019
Aug 30 2019
Add tests for the commutative case.
Aug 29 2019
Tighten the checks before creating the node.
- Avoid creating the shift node when not stricly required.
- Add negative tests.
I looked at the problem that @spatel ran into. It is not applicable to DAGCombiner, because the DAG is processed only once rather than in a loop as long as it is modified. I wouldn't be possible to change it to work like InstCombine does as there are a ton of A -> B -> A type of tranforms. That being said, it's not a good reason to add more, so it's worth looking into improving this if possible.
Aug 28 2019
IndexC => ExtrIndex
Upadte the doc comment to make it clear that the Mask argument can be modified.
Aug 27 2019
@nathanchance Thanks for this. Having a test case will help tremendously. Sorry for the inconvenience.
Rebase on top of D66804