Page MenuHomePhabricator

mike.dvoretsky (Mikhail Dvoretckii)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 29 2018, 7:03 AM (89 w, 6 d)

Recent Activity

Jul 10 2018

mike.dvoretsky committed rL336645: [X86] Fast-isel tests for lowered truncation intrinsics.
[X86] Fast-isel tests for lowered truncation intrinsics
Jul 10 2018, 1:32 AM
mike.dvoretsky closed D48822: [X86] Fast-isel tests for lowered truncation intrinsics.
Jul 10 2018, 1:31 AM
mike.dvoretsky committed rL336643: [X86] Lowering integer truncation intrinsics to native IR.
[X86] Lowering integer truncation intrinsics to native IR
Jul 10 2018, 1:27 AM
mike.dvoretsky committed rC336643: [X86] Lowering integer truncation intrinsics to native IR.
[X86] Lowering integer truncation intrinsics to native IR
Jul 10 2018, 1:27 AM
mike.dvoretsky closed D48712: [X86] Lowering integer truncation intrinsics to native IR.
Jul 10 2018, 1:27 AM

Jul 2 2018

mike.dvoretsky updated the summary of D48712: [X86] Lowering integer truncation intrinsics to native IR.
Jul 2 2018, 2:33 AM
mike.dvoretsky updated the summary of D48712: [X86] Lowering integer truncation intrinsics to native IR.
Jul 2 2018, 2:31 AM
mike.dvoretsky created D48822: [X86] Fast-isel tests for lowered truncation intrinsics.
Jul 2 2018, 2:28 AM

Jun 29 2018

mike.dvoretsky added inline comments to D48712: [X86] Lowering integer truncation intrinsics to native IR.
Jun 29 2018, 9:16 AM
mike.dvoretsky updated the summary of D48712: [X86] Lowering integer truncation intrinsics to native IR.
Jun 29 2018, 9:11 AM
mike.dvoretsky updated the diff for D48712: [X86] Lowering integer truncation intrinsics to native IR.

Updated per comments. Typedefs for intermediate short vectors moved into the bodies of the functions using them.

Jun 29 2018, 4:29 AM

Jun 28 2018

mike.dvoretsky updated the diff for D48712: [X86] Lowering integer truncation intrinsics to native IR.

Uploaded the correct diff.

Jun 28 2018, 2:15 AM
mike.dvoretsky created D48712: [X86] Lowering integer truncation intrinsics to native IR.
Jun 28 2018, 2:12 AM

Jun 22 2018

mike.dvoretsky committed rL335323: [X86] Changing the check for valid inputs in combineScalarToVector.
[X86] Changing the check for valid inputs in combineScalarToVector
Jun 22 2018, 1:33 AM
mike.dvoretsky closed D48366: [X86] Adding a check against i64 inputs in combineScalarToVector.
Jun 22 2018, 1:33 AM

Jun 21 2018

mike.dvoretsky committed rL335238: [x86] Lower some trunc + shuffle patterns to vpmov[q|d][b|w].
[x86] Lower some trunc + shuffle patterns to vpmov[q|d][b|w]
Jun 21 2018, 7:21 AM
mike.dvoretsky closed D46957: [x86] Lower some trunc + shuffle patterns to vpmov[q|d][b|w].
Jun 21 2018, 7:21 AM
mike.dvoretsky updated the diff for D48366: [X86] Adding a check against i64 inputs in combineScalarToVector.

Changed the type checks to ensure that the input has a valid type, rather than guarding against specific invalid types.

Jun 21 2018, 2:47 AM

Jun 20 2018

mike.dvoretsky created D48366: [X86] Adding a check against i64 inputs in combineScalarToVector.
Jun 20 2018, 7:23 AM
mike.dvoretsky committed rL335126: [X86] Adding a test for PR37879.
[X86] Adding a test for PR37879
Jun 20 2018, 7:06 AM
mike.dvoretsky updated the diff for D46957: [x86] Lower some trunc + shuffle patterns to vpmov[q|d][b|w].
Jun 20 2018, 3:37 AM

Jun 19 2018

mike.dvoretsky committed rL335039: [InstCombine] Replacing X86-specific rounding intrinsics with generic floor-ceil.
[InstCombine] Replacing X86-specific rounding intrinsics with generic floor-ceil
Jun 19 2018, 3:55 AM
mike.dvoretsky closed D48067: [InstCombine] Replacing X86-specific rounding intrinsics with generic floor-ceil.
Jun 19 2018, 3:54 AM
mike.dvoretsky committed rL335037: [X86] VRNDSCALE* folding from masked and scalar ffloor and fceil patterns.
[X86] VRNDSCALE* folding from masked and scalar ffloor and fceil patterns
Jun 19 2018, 3:44 AM
mike.dvoretsky closed D45203: [X86] VRNDSCALE* folding from masked and scalar ffloor and fceil patterns.
Jun 19 2018, 3:44 AM
mike.dvoretsky added a comment to D46957: [x86] Lower some trunc + shuffle patterns to vpmov[q|d][b|w].

Ping.

Jun 19 2018, 2:01 AM
mike.dvoretsky committed rL335026: Test commit..
Test commit.
Jun 19 2018, 12:59 AM

Jun 15 2018

mike.dvoretsky updated the diff for D45203: [X86] VRNDSCALE* folding from masked and scalar ffloor and fceil patterns.

Updated the AVX512 isel pattern to account for the instruction record name change.

Jun 15 2018, 2:54 AM
mike.dvoretsky requested review of D45203: [X86] VRNDSCALE* folding from masked and scalar ffloor and fceil patterns.
Jun 15 2018, 1:36 AM
mike.dvoretsky updated the diff for D45203: [X86] VRNDSCALE* folding from masked and scalar ffloor and fceil patterns.

Updated to support D48067 instead of D45202. Removed IntrinsicsX86.td changes since the lowering is now in InstCombine, changed the masked scalar pattern tests to exclude mask extension that was in the previous versions.

Jun 15 2018, 1:26 AM
mike.dvoretsky committed rL334806: NFC: Regenerating x86-sse41.ll test for InstCombine.
NFC: Regenerating x86-sse41.ll test for InstCombine
Jun 15 2018, 1:04 AM
mike.dvoretsky abandoned D45202: [X86] Replacing X86-specific floor and ceil vector intrinsics with generic LLVM intrinsics.

Abandoning this due to D48067 being accepted instead.

Jun 15 2018, 12:43 AM

Jun 14 2018

mike.dvoretsky updated the diff for D48067: [InstCombine] Replacing X86-specific rounding intrinsics with generic floor-ceil.

Fixed the typo in the test name and added checks to make the transform stop if the rounding mode immediate and/or SAE are not constant.

Jun 14 2018, 9:03 AM
mike.dvoretsky added inline comments to D48067: [InstCombine] Replacing X86-specific rounding intrinsics with generic floor-ceil.
Jun 14 2018, 4:26 AM
mike.dvoretsky updated the diff for D48067: [InstCombine] Replacing X86-specific rounding intrinsics with generic floor-ceil.

Changes made per comments. Note that zext IR instructions have been fully excluded from all patterns, which will require altering vec_floor.ll tests in D45203 if this revision is accepted.

Jun 14 2018, 4:26 AM

Jun 12 2018

mike.dvoretsky updated the summary of D45202: [X86] Replacing X86-specific floor and ceil vector intrinsics with generic LLVM intrinsics.
Jun 12 2018, 3:00 AM
mike.dvoretsky created D48067: [InstCombine] Replacing X86-specific rounding intrinsics with generic floor-ceil.
Jun 12 2018, 3:00 AM
mike.dvoretsky updated the diff for D46957: [x86] Lower some trunc + shuffle patterns to vpmov[q|d][b|w].
Jun 12 2018, 1:05 AM

Jun 11 2018

mike.dvoretsky added inline comments to D46957: [x86] Lower some trunc + shuffle patterns to vpmov[q|d][b|w].
Jun 11 2018, 6:21 AM
mike.dvoretsky added inline comments to D46957: [x86] Lower some trunc + shuffle patterns to vpmov[q|d][b|w].
Jun 11 2018, 5:44 AM
mike.dvoretsky updated the diff for D46957: [x86] Lower some trunc + shuffle patterns to vpmov[q|d][b|w].

Fixed the error in the final check (it was from badly undone edits around there). Moved the early-exit check. Expanded the comment on the AVX512BW check for clarity. Some names changed per comments.

Jun 11 2018, 5:38 AM

Jun 5 2018

mike.dvoretsky updated the diff for D45203: [X86] VRNDSCALE* folding from masked and scalar ffloor and fceil patterns.

Added tests for floor intrinsics and masked scalar double patterns to cover all introduced isel patterns.

Jun 5 2018, 6:03 AM
mike.dvoretsky abandoned D45723: [X86] Lowering SAD (sum of absolute differences) intrinsics to native IR (LLVM side).
Jun 5 2018, 5:19 AM
mike.dvoretsky abandoned D45722: [X86] Lowering SAD (sum of absolute differences) intrinsics to native IR (clang side).

Closing this due to failure of D45723.

Jun 5 2018, 5:19 AM
mike.dvoretsky abandoned D45720: [X86] Lowering PACK*S (pack with saturation) intrinsics to native IR (clang side).

Closing this due to failure of D45721.

Jun 5 2018, 5:17 AM
mike.dvoretsky abandoned D45721: [X86] Lowering PACK*S (pack with saturation) intrinsics to native IR (LLVM side).
Jun 5 2018, 5:17 AM
mike.dvoretsky updated the diff for D45203: [X86] VRNDSCALE* folding from masked and scalar ffloor and fceil patterns.

Corrected the scalar pattern predicates, added packed zero-masked instruction patterns and tests to cover zero-masking. Changed the RUN line of vec_floor.ll to give different results for AVX512F and AVX512VL where needed (e.g. in 128- and 256-bit masked operations).

Jun 5 2018, 5:10 AM

Jun 4 2018

mike.dvoretsky updated the diff for D46957: [x86] Lower some trunc + shuffle patterns to vpmov[q|d][b|w].

Changed isSequentialOrUndefInRange to take an increment argument and added isAnyInRange.

Jun 4 2018, 4:57 AM
mike.dvoretsky commandeered D46957: [x86] Lower some trunc + shuffle patterns to vpmov[q|d][b|w].

Taking over at @GBuella's request. The patterns that are currently implemented will be finished, but I don't have much hope for the masked versions. Since the mask is only good for the lower elements and the upped elements must be zeroed out, lowering the masked versions of these intrinsics would require not simple selects (see PR34877), but patterns like

Jun 4 2018, 4:49 AM
mike.dvoretsky updated the diff for D45203: [X86] VRNDSCALE* folding from masked and scalar ffloor and fceil patterns.

Added zero extension of mask to i32 in the masked scalar tests and added more ways to represent the mask, testing the 8-bit mask pattern among others. 16-bit mask patterns removed due to scalar_to_vector errors.

Jun 4 2018, 4:27 AM

Jun 1 2018

mike.dvoretsky updated the diff for D45202: [X86] Replacing X86-specific floor and ceil vector intrinsics with generic LLVM intrinsics.

Changed the scalar intrinsic lowering to work via extract-insert. D45203 contains tests for folding the resulting IR patterns.

Jun 1 2018, 8:46 AM
mike.dvoretsky updated the diff for D45203: [X86] VRNDSCALE* folding from masked and scalar ffloor and fceil patterns.

Changed the folding to use isel patterns from D47012.

Jun 1 2018, 7:34 AM
mike.dvoretsky updated the diff for D47145: [X86][ELF][CET] Adding the .note.gnu.property ELF section in X86.

Added an extra flag to the test, so that both flag-reading paths are covered. Since flags are module-wide, if there need to be tests covering them separately they would have to be put in new files.

Jun 1 2018, 6:08 AM
mike.dvoretsky added inline comments to D47145: [X86][ELF][CET] Adding the .note.gnu.property ELF section in X86.
Jun 1 2018, 4:59 AM
mike.dvoretsky updated the diff for D47145: [X86][ELF][CET] Adding the .note.gnu.property ELF section in X86.

Changes made per comments.

Jun 1 2018, 4:59 AM

May 30 2018

mike.dvoretsky updated the diff for D47145: [X86][ELF][CET] Adding the .note.gnu.property ELF section in X86.

Replaced assertion with a more explicit error at the start of the code path. Changed the emission of the "GNU\0" byte sequence to use EmitBytes with the StringRef constructor specifically to include the trailing zero byte.

May 30 2018, 9:23 AM

May 29 2018

mike.dvoretsky created D47473: [llvm-readobj] Support GNU_PROPERTY_X86_FEATURE_1_AND notes in .note.gnu.property.
May 29 2018, 5:38 AM
mike.dvoretsky updated the diff for D47145: [X86][ELF][CET] Adding the .note.gnu.property ELF section in X86.

Removed the llvm-readobj part to release as a separate patch.

May 29 2018, 4:50 AM

May 28 2018

mike.dvoretsky updated the diff for D47145: [X86][ELF][CET] Adding the .note.gnu.property ELF section in X86.

Made changes to the readobj part per comments. Will wait on comment from @craig.topper before splitting the patch.

May 28 2018, 3:02 AM

May 25 2018

mike.dvoretsky updated the diff for D47145: [X86][ELF][CET] Adding the .note.gnu.property ELF section in X86.

Enabled readobj to parse sections that use 32 bits for the data on 64-bit targets (like gcc currently does) and added explicit alignment to the section generation.

May 25 2018, 8:20 AM
mike.dvoretsky added a comment to D47311: [X86][CET] Shadow stack fix for setjmp/longjmp.

The bug was in the emitLongJmpShadowStackFix and emitEHSjLjLongJmp. The longjmp builtin call is not a terminator, so it's followed by an "unreachable" IR instruction. The previous patch put the register restoration and the indirect branch at the end of the final basic block of the resulting code. It produced correct code on Linux, but on Mac where "unreachable" produces ud2 instructions this lead to a crash because the ud2 was left in place and ended up being before the longjmp code, regardless of whether the shadow stack fix was present. This patch moves the longjmp pseudo-instruction and the ud2 (if present) to the final basic block of the produced code and emits the longjmp logic before them, so the ud2 is correctly placed at the end of longjmp and is properly unreachable.

May 25 2018, 1:11 AM

May 24 2018

mike.dvoretsky created D47311: [X86][CET] Shadow stack fix for setjmp/longjmp.
May 24 2018, 12:57 AM

May 23 2018

mike.dvoretsky updated the diff for D47145: [X86][ELF][CET] Adding the .note.gnu.property ELF section in X86.

Updated to use full 8/4 byte integers to store the flags rather than using 1 byte and padding.

May 23 2018, 8:27 AM

May 21 2018

mike.dvoretsky updated the diff for D47145: [X86][ELF][CET] Adding the .note.gnu.property ELF section in X86.

Uploaded the version without the test for the section emission. Corrected.

May 21 2018, 8:46 AM
mike.dvoretsky created D47145: [X86][ELF][CET] Adding the .note.gnu.property ELF section in X86.
May 21 2018, 8:44 AM

May 17 2018

mike.dvoretsky updated the diff for D46881: [X86][CET] Changing -fcf-protection behavior to comply with gcc (clang part).

Removed the unused HasIBT variable declaration from X86.h.

May 17 2018, 4:50 AM
mike.dvoretsky updated the diff for D46882: [X86][CET] Changing -fcf-protection behavior to comply with gcc (LLVM part).

Removed the missed FIXME.

May 17 2018, 1:11 AM

May 16 2018

mike.dvoretsky updated the diff for D46882: [X86][CET] Changing -fcf-protection behavior to comply with gcc (LLVM part).

Replaced FIXMEs with more appropriate cautionary comments. They do not need to be addressed directly by any patches, so much as they served to warn about using the instructions carelessly now that there is no longer a simple way to restrict their usage.

May 16 2018, 1:26 AM

May 15 2018

mike.dvoretsky updated the summary of D46881: [X86][CET] Changing -fcf-protection behavior to comply with gcc (clang part).
May 15 2018, 7:43 AM
mike.dvoretsky created D46882: [X86][CET] Changing -fcf-protection behavior to comply with gcc (LLVM part).
May 15 2018, 7:43 AM
mike.dvoretsky created D46881: [X86][CET] Changing -fcf-protection behavior to comply with gcc (clang part).
May 15 2018, 7:42 AM

May 7 2018

mike.dvoretsky added a comment to D46181: [X86][CET] Shadow stack fix for setjmp/longjmp.

@craig.topper, please review the latest changes.

May 7 2018, 9:00 AM
mike.dvoretsky updated the diff for D45721: [X86] Lowering PACK*S (pack with saturation) intrinsics to native IR (LLVM side).

Restored shuffle combining tests. Fixed the folding to account for unary (A == B) patterns, added tests.

May 7 2018, 3:03 AM

May 4 2018

mike.dvoretsky added a comment to D45721: [X86] Lowering PACK*S (pack with saturation) intrinsics to native IR (LLVM side).

@RKSimon, please review the latest changes.

May 4 2018, 7:50 AM

Apr 30 2018

mike.dvoretsky updated the diff for D46181: [X86][CET] Shadow stack fix for setjmp/longjmp.

Test fix.

Apr 30 2018, 8:10 AM
mike.dvoretsky added inline comments to D46181: [X86][CET] Shadow stack fix for setjmp/longjmp.
Apr 30 2018, 7:59 AM
mike.dvoretsky updated the diff for D46181: [X86][CET] Shadow stack fix for setjmp/longjmp.

Style fix.

Apr 30 2018, 7:58 AM
mike.dvoretsky updated the diff for D46181: [X86][CET] Shadow stack fix for setjmp/longjmp.

Updated per comments.

Apr 30 2018, 5:03 AM

Apr 27 2018

mike.dvoretsky created D46181: [X86][CET] Shadow stack fix for setjmp/longjmp.
Apr 27 2018, 5:12 AM

Apr 26 2018

mike.dvoretsky updated the diff for D45720: [X86] Lowering PACK*S (pack with saturation) intrinsics to native IR (clang side).

Changed the shuffle mask emission code to match D45721.

Apr 26 2018, 8:22 AM
mike.dvoretsky updated the diff for D45721: [X86] Lowering PACK*S (pack with saturation) intrinsics to native IR (LLVM side).

Tidied up the shuffle mask emission and checking and moved the PACKUSDW SSE4.1 check into tracePackVectorShuffle.

Apr 26 2018, 8:20 AM

Apr 25 2018

mike.dvoretsky added a comment to D45721: [X86] Lowering PACK*S (pack with saturation) intrinsics to native IR (LLVM side).

@RKSimon what's the motivation for leaving the tests for upgraded intrinsics in place instead of moving them to appropriate files?

Apr 25 2018, 8:06 AM
mike.dvoretsky added inline comments to D45723: [X86] Lowering SAD (sum of absolute differences) intrinsics to native IR (LLVM side).
Apr 25 2018, 7:45 AM
mike.dvoretsky updated the diff for D45722: [X86] Lowering SAD (sum of absolute differences) intrinsics to native IR (clang side).

Updated per comments.

Apr 25 2018, 3:38 AM
mike.dvoretsky updated the diff for D45723: [X86] Lowering SAD (sum of absolute differences) intrinsics to native IR (LLVM side).

Style fix.

Apr 25 2018, 3:38 AM

Apr 24 2018

mike.dvoretsky updated the diff for D45723: [X86] Lowering SAD (sum of absolute differences) intrinsics to native IR (LLVM side).

Updated per comments in the clang part.

Apr 24 2018, 5:05 AM
mike.dvoretsky updated the diff for D45722: [X86] Lowering SAD (sum of absolute differences) intrinsics to native IR (clang side).

Updated per comments.

Apr 24 2018, 5:02 AM

Apr 19 2018

mike.dvoretsky updated the diff for D45723: [X86] Lowering SAD (sum of absolute differences) intrinsics to native IR (LLVM side).

Fast-isel tests restored and updated.

Apr 19 2018, 5:17 AM
mike.dvoretsky updated the diff for D45721: [X86] Lowering PACK*S (pack with saturation) intrinsics to native IR (LLVM side).

Style fix.

Apr 19 2018, 1:56 AM
mike.dvoretsky updated the diff for D45721: [X86] Lowering PACK*S (pack with saturation) intrinsics to native IR (LLVM side).

Updated fast-isel tests for SSE and AVX2. There don't appear to be any AVX512 fast-isel tests for these intrinsics, will add them if required.

Apr 19 2018, 1:49 AM

Apr 18 2018

mike.dvoretsky updated the diff for D45721: [X86] Lowering PACK*S (pack with saturation) intrinsics to native IR (LLVM side).

Removed incorrect checks from SSE tests.

Apr 18 2018, 8:02 AM
mike.dvoretsky updated the diff for D45722: [X86] Lowering SAD (sum of absolute differences) intrinsics to native IR (clang side).

Updated per comments.

Apr 18 2018, 6:02 AM
mike.dvoretsky updated the diff for D45723: [X86] Lowering SAD (sum of absolute differences) intrinsics to native IR (LLVM side).

Updated per comments.

Apr 18 2018, 6:02 AM
mike.dvoretsky updated the diff for D45721: [X86] Lowering PACK*S (pack with saturation) intrinsics to native IR (LLVM side).

Style update.

Apr 18 2018, 2:41 AM
mike.dvoretsky updated the diff for D45720: [X86] Lowering PACK*S (pack with saturation) intrinsics to native IR (clang side).

Updated per comments.

Apr 18 2018, 2:41 AM
mike.dvoretsky added inline comments to D45720: [X86] Lowering PACK*S (pack with saturation) intrinsics to native IR (clang side).
Apr 18 2018, 1:15 AM

Apr 17 2018

mike.dvoretsky updated the summary of D45722: [X86] Lowering SAD (sum of absolute differences) intrinsics to native IR (clang side).
Apr 17 2018, 7:23 AM
mike.dvoretsky created D45723: [X86] Lowering SAD (sum of absolute differences) intrinsics to native IR (LLVM side).
Apr 17 2018, 7:23 AM
mike.dvoretsky created D45722: [X86] Lowering SAD (sum of absolute differences) intrinsics to native IR (clang side).
Apr 17 2018, 7:23 AM
mike.dvoretsky updated the summary of D45720: [X86] Lowering PACK*S (pack with saturation) intrinsics to native IR (clang side).
Apr 17 2018, 7:14 AM