- User Since
- Nov 10 2016, 2:52 PM (230 w, 2 d)
Clean up. To be applied on top of D100250.
Fix one more test case.
Fri, Apr 9
Thu, Apr 8
Use CHECK-NEXT in more places.
Wed, Apr 7
Ping (& fix one small style issue pointed out by clang-tidy)
Tue, Apr 6
Use suffix instead of an explicit cast.
Thu, Apr 1
Tue, Mar 30
Sun, Mar 28
Sat, Mar 27
Run clang-format on the modified line.
Fri, Mar 26
Sat, Mar 20
Rebase to main.
Thu, Mar 18
Wed, Mar 17
Tue, Mar 16
Mar 11 2021
Mar 9 2021
Split this patch, the SelectionDAG part is in D98273
Sure. I'll have the first one introduce the SelectionDAG rules and the second one introduce the fixes for the MIPS codegen together with the various tests.
Mar 8 2021
Apply the TRUNCATE + BITCAST strategy everywhere, at least on MIPS the generated code is noticeably better.
Mar 6 2021
Mar 5 2021
Mar 4 2021
Assert all the operand types are the same.
Properly handle cases where the true/false operand have different types than the comparison ones.
But, I'm rather curious about how the miscompilation happened from this optimization. A gep with such offset isn't common, unless a programmer writes a code that subtracts a pointer from null (which is already fishy)?
It would be great if I can see the input that causes miscompilation.
Mar 3 2021
Don't mark the fmin/fmax ops as legal if fullfp16 is not available.
Update test cases.
Mar 2 2021
Update some documentation comments.
Mar 1 2021
Feb 25 2021
Remove unused parameter.
Jan 13 2021
Rebased after changes in master, feel free to land the changes right away as I have no commit access (yet?).
Jan 9 2021
You can use "-stop-after=finalize-isel" and check the MIR output which should print the memory operands. I think maybe update_mir_test_checks.py can generate the check lines for MIR output from a .ll test.
- Add MIR test
- Replace dyn_cast<> with cast<>
Jan 8 2021
Roll back to something simpler, let's only implement %lm and its encoding.
The test is not so solid (is it?), ideally we should check the MI to make sure the load ops have the correct offset but I have no idea of what kind of test does that.
Dec 14 2020
As usual please merge if no more reviews are needed.
Dec 9 2020
Nov 28 2020
@MaskRay Is this ready to go now?
Nov 19 2020
I am once again asking for your
@MaskRay would you mind landing this now that it got another approval mark?
Nov 9 2020
Nov 6 2020
Nov 3 2020
Oct 31 2020
Oct 28 2020
It tries to fix a couple of things, so it would probably been better to divide it up into more than one patch and add some more tests, but this is fine. I compared the result with GAS for V8 and it matches.
Oct 20 2020
Looks good to me, thanks.
Cleaned up the true/false building parts.
Added a note about LLVM not detecting if signed multiplication overflow, not much of a problem and can be fixed later.
Looks good to me - thanks!
Oct 17 2020
Doesn't the same issue apply to the isNeutralValue branch?
Fix the neutral value code path too.
Oh well, it turns out the results are evaluated according to all the elements so it's ok to splat it.
Oct 14 2020
Oct 13 2020
Use ScopeExit instead of a bare lambda.
Perhaps this'd be more robust with ScopeExit?
Oct 10 2020
Ping with some more reviewers, hoping to land this in time for LLVM 99.
Sep 24 2020
LGTM, I typo'ed the comparison operator when I removed the switch. Sorry about that.
Jun 30 2020
@LemonBoy from your previous comment it looks like you don't intend to work on this further, is that correct? If so, are you okay with me taking over this patch, thus uploading this new patch for example?
May 31 2020
I won't have time to update this diff in the near future so feel free to add the value range checks in a follow-up commit/patch.