Page MenuHomePhabricator
Feed Advanced Search

Today

craig.topper planned changes to D76634: [X86] Try to improve min/max reduction costs..

I"m working on scrubbing the tables and will post a new version when that is done.

Sun, Mar 29, 12:30 AM · Restricted Project

Yesterday

craig.topper updated the diff for D76634: [X86] Try to improve min/max reduction costs..

Rebase and fix a bug.

Sat, Mar 28, 10:32 PM · Restricted Project
craig.topper committed rGc0aa97b63276: [X86] Add cost model test cases for fmin/fmax reduction. (authored by craig.topper).
[X86] Add cost model test cases for fmin/fmax reduction.
Sat, Mar 28, 6:16 PM
craig.topper added a comment to D76984: [X86][SSE] Handle basic inversion of PTEST/TESTP operands (PR38522).

Is this something we can handle in combineSetCCEFLAGS?

Sat, Mar 28, 3:04 PM · Restricted Project
craig.topper added a comment to D76984: [X86][SSE] Handle basic inversion of PTEST/TESTP operands (PR38522).

This feels subject to DAG combine ordering not folding the cmov+setcc before this combine gets a chance to run. Would this be simpler if we just did it at the intrinsic lowering stage?

Sat, Mar 28, 2:00 PM · Restricted Project
craig.topper added inline comments to D76475: [X86][MC] Disable Prefix padding after hardcode/prefix.
Sat, Mar 28, 2:00 PM · Restricted Project
craig.topper added a comment to D76634: [X86] Try to improve min/max reduction costs..

Ping

Sat, Mar 28, 2:00 PM · Restricted Project
craig.topper accepted D76239: [X86] X86CallFrameOptimization - generalize slow push code path.

LGTM

Sat, Mar 28, 2:00 PM · Restricted Project
craig.topper added inline comments to D76980: [LegalizeTypes] Add SoftenFloatRes/SoftenFloatOp functions for FREEZE.
Sat, Mar 28, 2:00 PM · Restricted Project

Fri, Mar 27

craig.topper created D76947: [SelectionDAGBuilder][CGP][X86] Move some of SDB's gather/scatter uniform base handling to CGP..
Fri, Mar 27, 1:10 PM · Restricted Project
craig.topper committed rGcdd1cd712087: [X86] Don't form masked instructions if the operation has an additional user. (authored by craig.topper).
[X86] Don't form masked instructions if the operation has an additional user.
Fri, Mar 27, 10:56 AM
craig.topper closed D60940: [X86] Don't form masked instructions if the operation has an additional user..
Fri, Mar 27, 10:55 AM · Restricted Project

Thu, Mar 26

craig.topper committed rG9f7d4150b9ec: [X86] Move combineLoopMAddPattern and combineLoopSADPattern to an IR pass… (authored by craig.topper).
[X86] Move combineLoopMAddPattern and combineLoopSADPattern to an IR pass…
Thu, Mar 26, 2:12 PM
craig.topper closed D76649: [X86] Move combineLoopMAddPattern and combineLoopSADPattern to an IR pass before SelecitonDAG..
Thu, Mar 26, 2:12 PM · Restricted Project
craig.topper updated the diff for D76649: [X86] Move combineLoopMAddPattern and combineLoopSADPattern to an IR pass before SelecitonDAG..

Remove the vector reduction flag an associated SelectionDAGBuilder code

Thu, Mar 26, 12:29 PM · Restricted Project
craig.topper updated the diff for D60940: [X86] Don't form masked instructions if the operation has an additional user..

Add one use check for scalars as well

Thu, Mar 26, 11:22 AM · Restricted Project
craig.topper added a comment to D76649: [X86] Move combineLoopMAddPattern and combineLoopSADPattern to an IR pass before SelecitonDAG..

There's still 1 other use of the flag in DAGCombiner IIUC, but if we can find a way to get rid of that too, that would be great.

Thu, Mar 26, 10:50 AM · Restricted Project
craig.topper abandoned D55452: [CostModel][X86] Teach getArithmeticReductionCost to properly cost the shuffles needed for a PairWise reduction before we reach a legal type. And remove one shuffle from the end of the reduction..
Thu, Mar 26, 10:50 AM

Wed, Mar 25

craig.topper committed rG281015de5d98: [X86] Update more intrinsic tests to prepare to extend D60940 to scalar fp. (authored by craig.topper).
[X86] Update more intrinsic tests to prepare to extend D60940 to scalar fp.
Wed, Mar 25, 11:16 PM
craig.topper added a comment to D76525: Expose cache line size in __builtin_get_cpu_cache_line_size.

@craig.topper I'm not sure what should happen. It should probably just use that CPU (although that's not a great solution). Is there a way to detect if an attribute was used to change the target in which case we could error? What do you think should happen?

Wed, Mar 25, 10:43 PM · Restricted Project
craig.topper committed rG31c5afb3f2e7: [X86] Split more masked instruction tests to enable D60940. (authored by craig.topper).
[X86] Split more masked instruction tests to enable D60940.
Wed, Mar 25, 9:39 PM
craig.topper updated the diff for D60940: [X86] Don't form masked instructions if the operation has an additional user..

Rebase now that I fixed most of the tests to avoid the blacklist

Wed, Mar 25, 9:39 PM · Restricted Project

Tue, Mar 24

craig.topper committed rG2093fdd429d5: [X86] Split masked instruction tests to enable D60940. (authored by craig.topper).
[X86] Split masked instruction tests to enable D60940.
Tue, Mar 24, 11:57 PM
craig.topper committed rGe8d67ada2df3: [X86] Disable autoupgrade support for avx512.mask.broadcasti32x2.* and avx512. (authored by craig.topper).
[X86] Disable autoupgrade support for avx512.mask.broadcasti32x2.* and avx512.
Tue, Mar 24, 12:56 PM

Mon, Mar 23

craig.topper updated the diff for D60940: [X86] Don't form masked instructions if the operation has an additional user..

Black list instructions that are currently failing tests.

Mon, Mar 23, 10:17 PM · Restricted Project
craig.topper updated the diff for D60940: [X86] Don't form masked instructions if the operation has an additional user..

Rebase. I'm going to try to work on the tests or maybe just start blacklisting instructions until we get the tests fixed.

Mon, Mar 23, 6:32 PM · Restricted Project
craig.topper created D76649: [X86] Move combineLoopMAddPattern and combineLoopSADPattern to an IR pass before SelecitonDAG..
Mon, Mar 23, 4:54 PM · Restricted Project
craig.topper added a comment to D76639: Change X86RetpolineThunks from a MachineFunctionPass to a ModulePass.

This probably has a hidden side effect on the pass manager construction. Inserting a module pass into the middle of the pipeline effectively introduces a serialization point in the middle of the pipeline. This means all functions have to reach this point in the pipeline before any function can continue. I believe this will cause the Machine IR for all functions to become resident in memory at once. This will substantially increase the memory usage of the compiler.

Isn't this what already happens with the SymbolRewriter?

Mon, Mar 23, 2:11 PM
craig.topper added a comment to D76639: Change X86RetpolineThunks from a MachineFunctionPass to a ModulePass.

This probably has a hidden side effect on the pass manager construction. Inserting a module pass into the middle of the pipeline effectively introduces a serialization point in the middle of the pipeline. This means all functions have to reach this point in the pipeline before any function can continue. I believe this will cause the Machine IR for all functions to become resident in memory at once. This will substantially increase the memory usage of the compiler.

Mon, Mar 23, 1:07 PM
craig.topper created D76634: [X86] Try to improve min/max reduction costs..
Mon, Mar 23, 12:00 PM · Restricted Project
craig.topper added a comment to D74918: Add method to TargetInfo to get CPU cache line size.

@lebedev.ri Where should I put this? Could you maybe point me to another LLVM target API that clang uses that I could base this off? Maybe it should go inside the triple or just be a static function?

I would have guessed TargetLoweringInfo/TargetTransformInfo, but i'm not sure if we can access it here without violating layering.

Mon, Mar 23, 10:55 AM · Restricted Project

Sun, Mar 22

craig.topper updated the diff for D76212: [X86] Make v32i16/v64i8 legal types without avx512bw. Use custom splitting instead..

Rebase

Sun, Mar 22, 4:06 PM · Restricted Project
craig.topper committed rGe2cb12137455: [X86] Remove maximum vector length limit from combineBasicSADPattern. (authored by craig.topper).
[X86] Remove maximum vector length limit from combineBasicSADPattern.
Sun, Mar 22, 3:02 PM
craig.topper closed D76560: [X86] Remove maximum vector length limit from combineBasicSADPattern..
Sun, Mar 22, 3:02 PM · Restricted Project
craig.topper committed rGf4c67dfa925a: [X86] More accurately model the cost of horizontal reductions. (authored by craig.topper).
[X86] More accurately model the cost of horizontal reductions.
Sun, Mar 22, 2:29 PM
craig.topper closed D76478: [X86] More accurately model the cost of horizontal reductions..
Sun, Mar 22, 2:29 PM · Restricted Project
craig.topper committed rGb89ae50795db: [X86] Remove maximum vector width restriction from combineLoopSADPattern. (authored by craig.topper).
[X86] Remove maximum vector width restriction from combineLoopSADPattern.
Sun, Mar 22, 11:13 AM
craig.topper closed D76558: [X86] Remove maximum vector width restriction from combineLoopSADPattern..
Sun, Mar 22, 11:12 AM · Restricted Project

Sat, Mar 21

craig.topper created D76560: [X86] Remove maximum vector length limit from combineBasicSADPattern..
Sat, Mar 21, 6:42 PM · Restricted Project
craig.topper committed rGa1e02753c0ec: [X86] Add nonloop v64i8 test to sad.ll. (authored by craig.topper).
[X86] Add nonloop v64i8 test to sad.ll.
Sat, Mar 21, 6:10 PM
craig.topper created D76558: [X86] Remove maximum vector width restriction from combineLoopSADPattern..
Sat, Mar 21, 5:06 PM · Restricted Project
craig.topper committed rGd1739f1e2f28: [X86] Add test for v4i8 loop sad pattern. (authored by craig.topper).
[X86] Add test for v4i8 loop sad pattern.
Sat, Mar 21, 4:02 PM
craig.topper retitled D76478: [X86] More accurately model the cost of horizontal reductions. from [X86] More accurately model the cost of horizontal reductions for types. to [X86] More accurately model the cost of horizontal reductions..
Sat, Mar 21, 12:15 PM · Restricted Project
craig.topper added inline comments to D74918: Add method to TargetInfo to get CPU cache line size.
Sat, Mar 21, 12:29 AM · Restricted Project

Fri, Mar 20

craig.topper added a comment to D76525: Expose cache line size in __builtin_get_cpu_cache_line_size.

What should the behavior of the builtin be if the calling function has its own target cpu like attribute((target("arch=sandybridge"))) and that CPU has a different size than the CPU that was passed on the command line?

Fri, Mar 20, 11:57 PM · Restricted Project
craig.topper committed rG32fbea15485d: [X86] Prevent (bitcast (broadcast_load)) combine from producing vXf16 broadcast… (authored by craig.topper).
[X86] Prevent (bitcast (broadcast_load)) combine from producing vXf16 broadcast…
Fri, Mar 20, 9:45 AM

Thu, Mar 19

craig.topper created D76478: [X86] More accurately model the cost of horizontal reductions..
Thu, Mar 19, 11:57 PM · Restricted Project
craig.topper added inline comments to D76398: [X86] Limit prefix padding w/target specific padding amount.
Thu, Mar 19, 9:22 PM · Restricted Project
craig.topper committed rGc13aa36bb7d1: [X86] Attempt to more accurately model the cost of a bool reduction of wide… (authored by craig.topper).
[X86] Attempt to more accurately model the cost of a bool reduction of wide…
Thu, Mar 19, 9:49 AM
craig.topper closed D76400: [X86] Attempt to more accurately model the cost of a bool reduction of wide vector type..
Thu, Mar 19, 9:48 AM · Restricted Project

Wed, Mar 18

craig.topper created D76400: [X86] Attempt to more accurately model the cost of a bool reduction of wide vector type..
Wed, Mar 18, 6:28 PM · Restricted Project
craig.topper committed rGc69a4d6bef0a: [SelectionDAG] When splitting gathers/scatters in type legalization, set MMO… (authored by craig.topper).
[SelectionDAG] When splitting gathers/scatters in type legalization, set MMO…
Wed, Mar 18, 4:19 PM
craig.topper closed D76388: [SelectionDAG] When splitting gathers/scatters in type legalization, set MMO size to UnknownSize.
Wed, Mar 18, 4:19 PM · Restricted Project
craig.topper added inline comments to D76387: [AMDGPU] Reuse register during frame index elimination.
Wed, Mar 18, 3:13 PM · Restricted Project
craig.topper created D76388: [SelectionDAG] When splitting gathers/scatters in type legalization, set MMO size to UnknownSize.
Wed, Mar 18, 3:13 PM · Restricted Project
craig.topper committed rG498b53890d81: [SelectionDAGBuilder][FPEnv] Take into account SelectionDAG continuous CSE when… (authored by craig.topper).
[SelectionDAGBuilder][FPEnv] Take into account SelectionDAG continuous CSE when…
Wed, Mar 18, 2:08 PM
craig.topper closed D75224: [SelectionDAG][FPEnv] Take into account SelectionDAG continuous CSE when setting the nofpexcept flag for constrained intrinsics.
Wed, Mar 18, 2:08 PM · Restricted Project

Tue, Mar 17

craig.topper added inline comments to D76239: [X86] X86CallFrameOptimization - generalize slow push code path.
Tue, Mar 17, 4:14 PM · Restricted Project
craig.topper updated the diff for D75224: [SelectionDAG][FPEnv] Take into account SelectionDAG continuous CSE when setting the nofpexcept flag for constrained intrinsics.

Fix typo in comment.

Tue, Mar 17, 4:13 PM · Restricted Project
craig.topper added inline comments to D75934: Add Indirect Thunk Support to X86 to mitigate Load Value Injection (LVI) [2/6].
Tue, Mar 17, 1:29 PM · Restricted Project
craig.topper committed rG080dd10f7df0: Move RDF from Hexagon to Codegen (authored by sconstab).
Move RDF from Hexagon to Codegen
Tue, Mar 17, 12:58 PM
craig.topper closed D75932: Move RDF from Hexagon to Codegen [1/6].
Tue, Mar 17, 12:57 PM · Restricted Project
craig.topper committed rG98369178bc69: [SelectionDAGBuilder] Don't set MachinePointerInfo for gather when we find a… (authored by craig.topper).
[SelectionDAGBuilder] Don't set MachinePointerInfo for gather when we find a…
Tue, Mar 17, 11:18 AM
craig.topper closed D76157: [SelectionDAGBuilder] Don't set MachinePointerInfo for gather when we find a uniform base.
Tue, Mar 17, 11:18 AM · Restricted Project
craig.topper updated the diff for D75224: [SelectionDAG][FPEnv] Take into account SelectionDAG continuous CSE when setting the nofpexcept flag for constrained intrinsics.

Simpler version to think about. Just let Constrained intrinsics handle their own flags completely, and skip them in the common FMF handling.

Tue, Mar 17, 10:43 AM · Restricted Project

Mon, Mar 16

craig.topper committed rG85726bbcbaa0: [X86] Disable fast-isel call lowering for functions with vXi1 arguments on… (authored by craig.topper).
[X86] Disable fast-isel call lowering for functions with vXi1 arguments on…
Mon, Mar 16, 6:36 PM
craig.topper committed rG378b1e60809d: [X86] Assign avx512bf16 instructions to the SSEPackedSingle ExeDomain. (authored by craig.topper).
[X86] Assign avx512bf16 instructions to the SSEPackedSingle ExeDomain.
Mon, Mar 16, 2:14 PM
craig.topper added inline comments to D75944: [x86][seses] Don't LFENCE data invariant insts.
Mon, Mar 16, 1:07 PM · Restricted Project
craig.topper added inline comments to D76158: Add inline assembly load hardening mitigation for Load Value Injection (LVI) on X86 [6/6].
Mon, Mar 16, 10:20 AM

Sun, Mar 15

craig.topper updated the diff for D76157: [SelectionDAGBuilder] Don't set MachinePointerInfo for gather when we find a uniform base.

Preserve address space and change size to UnknownSize.

Sun, Mar 15, 11:42 PM · Restricted Project
craig.topper created D76212: [X86] Make v32i16/v64i8 legal types without avx512bw. Use custom splitting instead..
Sun, Mar 15, 11:08 PM · Restricted Project
craig.topper added inline comments to D76212: [X86] Make v32i16/v64i8 legal types without avx512bw. Use custom splitting instead..
Sun, Mar 15, 11:08 PM · Restricted Project
craig.topper committed rGb2da1ddaef29: [X86] Add a non-zero cost for truncating v32i16->v32i8 on avx512bw. (authored by craig.topper).
[X86] Add a non-zero cost for truncating v32i16->v32i8 on avx512bw.
Sun, Mar 15, 5:43 PM

Sat, Mar 14

craig.topper committed rG1ffc50740508: [X86] Add avx512f only command lines to the vector add/sub saturation tests. NFC (authored by craig.topper).
[X86] Add avx512f only command lines to the vector add/sub saturation tests. NFC
Sat, Mar 14, 5:11 PM

Fri, Mar 13

craig.topper committed rG755e00876cd3: [X86] Remove isel patterns for X86VBroadcast+trunc+extload. Replace with DAG… (authored by craig.topper).
[X86] Remove isel patterns for X86VBroadcast+trunc+extload. Replace with DAG…
Fri, Mar 13, 6:22 PM
craig.topper added a comment to D76157: [SelectionDAGBuilder] Don't set MachinePointerInfo for gather when we find a uniform base.

I wasn't sure if passing just the "base" pointer was correct.

It doesn't really matter what the MachineMemOperand looks like for an operation that doesn't alias anything. :)

Fri, Mar 13, 3:40 PM · Restricted Project
craig.topper added a comment to D76157: [SelectionDAGBuilder] Don't set MachinePointerInfo for gather when we find a uniform base.

We want to try to create the best MachineMemOperand we can. That means:

  1. In general, we can't express the semantics in MachinePointerInfo; the Value has to be a pointer, not a vector of pointers. So we have to create an "empty" MachinePointerInfo. (But we should make sure to note the address-space correctly.)
Fri, Mar 13, 2:34 PM · Restricted Project
craig.topper committed rG431df3d873e9: [SelectionDAGBuilder] Simplify the struct type handling in getUniformBase. (authored by craig.topper).
[SelectionDAGBuilder] Simplify the struct type handling in getUniformBase.
Fri, Mar 13, 2:03 PM
craig.topper committed rG1d192e09d808: [IR] Fix formatting. NFC (authored by craig.topper).
[IR] Fix formatting. NFC
Fri, Mar 13, 2:03 PM
craig.topper created D76157: [SelectionDAGBuilder] Don't set MachinePointerInfo for gather when we find a uniform base.
Fri, Mar 13, 1:29 PM · Restricted Project
craig.topper accepted D76138: [X86][SSE] Prefer trunc(movd(x)) to pextrb(x,0).

LGTM

Fri, Mar 13, 11:17 AM · Restricted Project
craig.topper committed rG09c8f38924d4: [X86] Add isel patterns for X86VBroadcast with i16 truncates from i16->i64… (authored by craig.topper).
[X86] Add isel patterns for X86VBroadcast with i16 truncates from i16->i64…
Fri, Mar 13, 12:50 AM
craig.topper committed rG51a4c6125ca6: [X86] Add test cases for failures to form vbroadcastw due to… (authored by craig.topper).
[X86] Add test cases for failures to form vbroadcastw due to…
Fri, Mar 13, 12:50 AM

Thu, Mar 12

craig.topper added a comment to D75945: Use 15 byte long nops on modern Intel processors.

Looks good to me.

Thu, Mar 12, 4:18 PM · Restricted Project
craig.topper added inline comments to D76077: [ARM] Add __bf16 as new Bfloat16 C Type.
Thu, Mar 12, 11:23 AM · Restricted Project

Wed, Mar 11

craig.topper added inline comments to D75940: [x86][seses] Add documentation for SESES.
Wed, Mar 11, 3:56 PM · Restricted Project
craig.topper added inline comments to D75935: Add RET-hardening Support to X86 to mitigate Load Value Injection (LVI) [3/6].
Wed, Mar 11, 3:56 PM · Restricted Project
craig.topper added inline comments to D75944: [x86][seses] Don't LFENCE data invariant insts.
Wed, Mar 11, 3:56 PM · Restricted Project
craig.topper added inline comments to D75940: [x86][seses] Add documentation for SESES.
Wed, Mar 11, 3:32 PM · Restricted Project
craig.topper added inline comments to D75939: [x86][seses] Introduce SESES pass for LVI.
Wed, Mar 11, 9:37 AM · Restricted Project
craig.topper added inline comments to D75723: [X86] Enable intrinsics _BitScan*.
Wed, Mar 11, 12:09 AM · Restricted Project

Tue, Mar 10

craig.topper added inline comments to D75723: [X86] Enable intrinsics _BitScan*.
Tue, Mar 10, 11:00 PM · Restricted Project
craig.topper added inline comments to D75723: [X86] Enable intrinsics _BitScan*.
Tue, Mar 10, 9:33 PM · Restricted Project
craig.topper added inline comments to D75723: [X86] Enable intrinsics _BitScan*.
Tue, Mar 10, 9:33 PM · Restricted Project
craig.topper accepted D75894: [X86] Support intrinsics _bextr2*.

LGTM

Tue, Mar 10, 9:33 PM · Restricted Project
craig.topper accepted D75896: [X86] Support intrinsic _mm_cldemote.

LGTM

Tue, Mar 10, 9:33 PM · Restricted Project
craig.topper added inline comments to D75723: [X86] Enable intrinsics _BitScan*.
Tue, Mar 10, 8:50 PM · Restricted Project
craig.topper added inline comments to D75723: [X86] Enable intrinsics _BitScan*.
Tue, Mar 10, 5:33 PM · Restricted Project
craig.topper accepted D75748: [X86] Replace (most) X86ISD::SHLD/SHRD usage with ISD::FSHL/FSHR generic opcodes (PR39467).

LGTM

Tue, Mar 10, 4:26 PM · Restricted Project
craig.topper added inline comments to D75934: Add Indirect Thunk Support to X86 to mitigate Load Value Injection (LVI) [2/6].
Tue, Mar 10, 2:46 PM · Restricted Project