- User Since
- May 5 2018, 9:37 AM (37 w, 22 h)
Fri, Jan 18
On a related note, we have another case where thunks may be invalid due to CC restrictions: https://bugs.llvm.org/show_bug.cgi?id=40232
Thu, Jan 17
Remove unnecessary braces. Use getLimitedValue() only after range checks.
Wed, Jan 16
Tue, Jan 15
Rebase and update SLPVectorizer tests.
Mon, Jan 14
Gah, apparently I didn't run SLPVectorizer tests, which of course also change. Getting a WARNING: Found conflicting asm under the same prefix: 'AVX2' warning when regenerating those, so I've reverted for now and will look again tomorrow.
Sun, Jan 13
Use LegalOrCustom. Use UMAX+SUB pattern for scalar as well. Remove no longer necessary X86 specific changes.
Rebase over NFC commit.
Rename excessively long method name. Change handling of AVX splitting. Move AVX512 costs to right category (pmaxuq is in AVX512F, so these shouldn't be in the BW cateogory).
Sat, Jan 12
Fri, Jan 11
Thu, Jan 10
Fix formatting, remove InstCombine/saturating-add-sub-vector.ll test in favor of ConstantFolding/saturating-add-sub.ll.
I should probably mention that this also changes the behavior for smaller inline buckets. If say we are in the small rep with InlineBuckets=16 and call grow(16), then before this change it would switch it to the large rep with 64 buckets, while after this change it will stay in the small rep with 16 buckets. If we want to keep it this way, then an alternative fix here would be to simply adjust the assertion and allow creating a large rep with InlineBuckets buckets.
Wed, Jan 9
Tue, Jan 8
I've submitted D56455 to fix the SmallDenseMap bug this triggered. Also reduced this to use 16 instead of 128 inline elements. That seems to be a more typical value and also sidesteps the issue :)
Use less inline elements in SmallSetVector.
Mon, Jan 7
Aaand reverted :/ Assertion failure in clang CodeGen/builtins-systemz-zvector.c:
Sun, Jan 6
Sat, Jan 5
Create new compare instructions instead of modifying existing ones and manually managing worklist.
Split up functions for eq and non-eq icmps. Handle ctlz separately from cttz by going directly to the form using only a comparison. Rebase over improved tests with multiuse and vector variants.
Fri, Jan 4
Thu, Jan 3
Wed, Jan 2
Handle overflowing mul with a fallthrough case.
Tue, Jan 1
Rebase over regenerated test checks.
Mon, Dec 31
Fix removal of dead uses. The previous version had a check whether the previous demanded bits are empty and only dropped the use from the DeadUses set in that case. The motivation for this was that the use could only be part of DeadUses if the demanded bits are empty, so we can save a redundant hash lookup. Of course, this is not actually true, because the previous demanded bits are for the instruction across all users, which is a superset of the demanded bits for a single use. (That being kind of the whole point of this change, I'm really not sure what I was thinking there...)
Sun, Dec 30
Based on the current documentation of poison values, selecting over poison is still poison by the first rule. I'm assuming that this is an inaccuracy in the documentation and selects are treated the same ways as phis? Otherwise the cited clang code would be affected.
Fri, Dec 28
Fri, Dec 21
Add ctpop comment.
Dec 20 2018
Dec 19 2018
I've reverted this, because it causes enc-3des.execution_time from test-suite to fail (e.g. http://lab.llvm.org:8011/builders/clang-cmake-x86_64-sde-avx512-linux/builds/16746).
Remove assert, check that instr is in AliveBits.
Dec 18 2018
Add single use check and tests.
@RKSimon Yeah, I plan to migrate the signed ones as well.