Page MenuHomePhabricator

craig.topper (Craig Topper)
User

Projects

User does not belong to any projects.

User Details

User Since
Jul 30 2013, 7:58 PM (365 w, 6 d)

Recent Activity

Today

craig.topper added a comment to D85165: [X86][MC][Target] Initial backend support a tune CPU to support -mtune.

@andreadb @RKSimon or @efriedma do any of you have suggestions for simple scheduler tests for this? I was hoping I could use -print-schedule like we used to but that no longer exists.

Tue, Aug 4, 11:02 AM · Restricted Project

Yesterday

craig.topper updated the diff for D85165: [X86][MC][Target] Initial backend support a tune CPU to support -mtune.

Remove hasTuneCPU from tablegen. Update interfaces in all targets instead.

Mon, Aug 3, 6:24 PM · Restricted Project
craig.topper requested review of D85165: [X86][MC][Target] Initial backend support a tune CPU to support -mtune.
Mon, Aug 3, 2:56 PM · Restricted Project
craig.topper committed rGf208c659fb76: [X86] Make ENDBR instruction a scheduling boundary (authored by joaomoreira).
[X86] Make ENDBR instruction a scheduling boundary
Mon, Aug 3, 10:48 AM
craig.topper closed D84862: [X86] Make ENDBR instruction a scheduling boundary.
Mon, Aug 3, 10:47 AM · Restricted Project
craig.topper committed rGac82b918c74f: [X86] Use h-register for final XOR of __builtin_parity on 64-bit targets. (authored by craig.topper).
[X86] Use h-register for final XOR of __builtin_parity on 64-bit targets.
Mon, Aug 3, 10:10 AM

Sun, Aug 2

craig.topper committed rG64516ec7c129: [X86] Use parity flag from byte test/cmp instruction for __builtin_parity when… (authored by craig.topper).
[X86] Use parity flag from byte test/cmp instruction for __builtin_parity when…
Sun, Aug 2, 10:52 AM
craig.topper committed rGa258338d6271: [X86] Add test cases for missed opportunity to use a byte test instruction… (authored by craig.topper).
[X86] Add test cases for missed opportunity to use a byte test instruction…
Sun, Aug 2, 10:52 AM

Sat, Aug 1

craig.topper committed rG56166a3a5229: [X86] Improve parity idiom recognition to handle (and (truncate (ctpop X)), 1). (authored by craig.topper).
[X86] Improve parity idiom recognition to handle (and (truncate (ctpop X)), 1).
Sat, Aug 1, 11:00 PM
craig.topper committed rGf89d59a0853f: [X86] Add parity test cases for PR46954. (authored by craig.topper).
[X86] Add parity test cases for PR46954.
Sat, Aug 1, 11:00 PM
craig.topper committed rGe297d928dcde: [X86] Add assembler support for {disp8} and {disp32} to control the size of… (authored by craig.topper).
[X86] Add assembler support for {disp8} and {disp32} to control the size of…
Sat, Aug 1, 2:13 PM
craig.topper closed D84793: [X86] Add assembler support for {disp8} and {disp32} to control the size of displacement used for memory operands..
Sat, Aug 1, 2:13 PM · Restricted Project
craig.topper accepted D84862: [X86] Make ENDBR instruction a scheduling boundary.

LGTM. I think I'm ok with it. I suppose we could construct some synthetic MIR test case, but not sure how complex it would have to be to make the scheduler want to move the ENDBR.

Sat, Aug 1, 1:29 PM · Restricted Project
craig.topper committed rG85b5315dbe9d: [InstSimplify] Fold abs(abs(x)) -> abs(x) (authored by craig.topper).
[InstSimplify] Fold abs(abs(x)) -> abs(x)
Sat, Aug 1, 1:25 PM
craig.topper committed rG4a19e6156ed5: [InstCombine] Fold abs(-x) -> abs(x) (authored by craig.topper).
[InstCombine] Fold abs(-x) -> abs(x)
Sat, Aug 1, 1:25 PM
craig.topper closed D85053: [InstSimplify] Fold abs(abs(x)) -> abs(x).
Sat, Aug 1, 1:25 PM · Restricted Project
craig.topper closed D85055: [InstCombine] Fold abs(-x) -> abs(x).
Sat, Aug 1, 1:25 PM · Restricted Project
craig.topper accepted D82826: [X86] support .nops directive.

LGTM

Sat, Aug 1, 10:19 AM · Restricted Project

Fri, Jul 31

craig.topper committed rG75f134eec1ca: [X86] Refactor the broadcast and load folding in tryVPTESTM to reduce some code. (authored by craig.topper).
[X86] Refactor the broadcast and load folding in tryVPTESTM to reduce some code.
Fri, Jul 31, 11:57 PM
craig.topper committed rG1bd7046e4ce0: [X86] Use TargetLowering::getRegClassFor to simplify some code in tryVPTESTM. (authored by craig.topper).
[X86] Use TargetLowering::getRegClassFor to simplify some code in tryVPTESTM.
Fri, Jul 31, 10:34 PM
craig.topper committed rG93c678a79b0a: [X86] Simplify vpternlog immediate selection. (authored by craig.topper).
[X86] Simplify vpternlog immediate selection.
Fri, Jul 31, 5:17 PM
craig.topper added a comment to D85053: [InstSimplify] Fold abs(abs(x)) -> abs(x).

There's an isidempotent function somewhere that catches this

Fri, Jul 31, 4:34 PM · Restricted Project
craig.topper requested review of D85055: [InstCombine] Fold abs(-x) -> abs(x).
Fri, Jul 31, 4:05 PM · Restricted Project
craig.topper committed rG86dea1f39bd1: [ValueTracking] Improve llvm.abs handling in computeKnownBits. (authored by craig.topper).
[ValueTracking] Improve llvm.abs handling in computeKnownBits.
Fri, Jul 31, 3:56 PM
craig.topper closed D85000: [ValueTracking] Improve llvm.abs handling in computeKnownBits..
Fri, Jul 31, 3:55 PM · Restricted Project
craig.topper added a reviewer for D85053: [InstSimplify] Fold abs(abs(x)) -> abs(x): nikic.
Fri, Jul 31, 3:27 PM · Restricted Project
craig.topper requested review of D85053: [InstSimplify] Fold abs(abs(x)) -> abs(x).
Fri, Jul 31, 3:22 PM · Restricted Project
craig.topper updated the diff for D85000: [ValueTracking] Improve llvm.abs handling in computeKnownBits..

Upload full patch

Fri, Jul 31, 3:08 PM · Restricted Project
craig.topper added inline comments to D85000: [ValueTracking] Improve llvm.abs handling in computeKnownBits..
Fri, Jul 31, 2:37 PM · Restricted Project
craig.topper updated the diff for D85000: [ValueTracking] Improve llvm.abs handling in computeKnownBits..

Add vector tests. Remove FIXME from test

Fri, Jul 31, 2:36 PM · Restricted Project
craig.topper committed rG0e0aebc5273c: [ValueTracking] Add ComputeNumSignBits support for llvm.abs intrinsic (authored by craig.topper).
[ValueTracking] Add ComputeNumSignBits support for llvm.abs intrinsic
Fri, Jul 31, 10:59 AM
craig.topper closed D84971: [ValueTracking] Add ComputeNumSignBits support for llvm.abs intrinsic.
Fri, Jul 31, 10:59 AM · Restricted Project

Thu, Jul 30

craig.topper committed rG30a0dbb70d9e: [X86] Remove x86_sse42_crc32_64_64 from X86TTIImpl… (authored by craig.topper).
[X86] Remove x86_sse42_crc32_64_64 from X86TTIImpl…
Thu, Jul 30, 10:00 PM
craig.topper requested review of D85000: [ValueTracking] Improve llvm.abs handling in computeKnownBits..
Thu, Jul 30, 9:32 PM · Restricted Project
craig.topper committed rG916d9e18774a: [X86] Pass the OperandVector by reference to ParseIntelOperand and… (authored by craig.topper).
[X86] Pass the OperandVector by reference to ParseIntelOperand and…
Thu, Jul 30, 7:53 PM
craig.topper committed rGec1445c5afda: [X86] Fix for ballooning compile times due to Load Value Injection (LVI)… (authored by sconstab).
[X86] Fix for ballooning compile times due to Load Value Injection (LVI)…
Thu, Jul 30, 5:44 PM
craig.topper closed D84471: [X86] Fix for ballooning compile times due to Load Value Injection (LVI) mitigations.
Thu, Jul 30, 5:44 PM · Restricted Project
craig.topper committed rG3ad09fd03c51: [X86] Separate CPU Feature lists in X86.td between architecture features and… (authored by craig.topper).
[X86] Separate CPU Feature lists in X86.td between architecture features and…
Thu, Jul 30, 5:20 PM
craig.topper closed D84879: [X86] Separate CPU Feature lists in X86.td between architecture features and tuning features.
Thu, Jul 30, 5:20 PM · Restricted Project
craig.topper committed rG24f5235d9365: [ValueTracking] Add basic computeKnownBits support for llvm.abs intrinsic (authored by craig.topper).
[ValueTracking] Add basic computeKnownBits support for llvm.abs intrinsic
Thu, Jul 30, 5:01 PM
craig.topper closed D84963: [ValueTracking] Add basic computeKnownBits support for llvm.abs intrinsic.
Thu, Jul 30, 5:01 PM · Restricted Project
craig.topper added a comment to D84963: [ValueTracking] Add basic computeKnownBits support for llvm.abs intrinsic.

The SelectionDAG version does the following, so it would make sense to adapt these here:

// If the source's MSB is zero then we know the rest of the bits already.
if (Known2.isNonNegative()) {
  Known.Zero = Known2.Zero;
  Known.One = Known2.One;
  break;
}

// We only know that the absolute values's MSB will be zero iff there is
// a set bit that isn't the sign bit (otherwise it could be INT_MIN).
Known2.One.clearSignBit();
if (Known2.One.getBoolValue()) {
  Known.Zero = APInt::getSignMask(BitWidth);
  break;
}
Thu, Jul 30, 4:20 PM · Restricted Project
craig.topper retitled D84971: [ValueTracking] Add ComputeNumSignBits support for llvm.abs intrinsic from [ValueTracking] to [ValueTracking] Add ComputeNumSignBits support for llvm.abs intrinsic.
Thu, Jul 30, 12:32 PM · Restricted Project
craig.topper requested review of D84971: [ValueTracking] Add ComputeNumSignBits support for llvm.abs intrinsic.
Thu, Jul 30, 12:30 PM · Restricted Project
craig.topper requested review of D84963: [ValueTracking] Add basic computeKnownBits support for llvm.abs intrinsic.
Thu, Jul 30, 11:29 AM · Restricted Project
craig.topper committed rG3632f765dc6a: [WebAssembly] Fix GCC 5 build. (authored by craig.topper).
[WebAssembly] Fix GCC 5 build.
Thu, Jul 30, 10:01 AM
craig.topper added a comment to D84471: [X86] Fix for ballooning compile times due to Load Value Injection (LVI) mitigations.

@sconstab Do you need someone to commit this?

Thu, Jul 30, 9:05 AM · Restricted Project

Wed, Jul 29

craig.topper committed rG07bb8240a0b2: [X86] Pass the OperandVector to ParseMemOperand instead of returning the… (authored by craig.topper).
[X86] Pass the OperandVector to ParseMemOperand instead of returning the…
Wed, Jul 29, 11:46 PM
craig.topper committed rG17597442db15: [X86] Don't pass some many parameters to ParseMemOperand by reference. (authored by craig.topper).
[X86] Don't pass some many parameters to ParseMemOperand by reference.
Wed, Jul 29, 11:46 PM
craig.topper accepted D84900: [X86] Parse and ignore .arch directives.

LGTM

Wed, Jul 29, 11:28 PM · Restricted Project
craig.topper committed rG9611ee5f40ea: [X86] Teach the assembler parser to handle a '*' between segment register and… (authored by craig.topper).
[X86] Teach the assembler parser to handle a '*' between segment register and…
Wed, Jul 29, 10:01 PM
craig.topper closed D84895: [X86] Teach the assembler parser to handle a '*' between segment register and base/index/displacement part of an address.
Wed, Jul 29, 10:00 PM · Restricted Project
craig.topper added inline comments to D84900: [X86] Parse and ignore .arch directives.
Wed, Jul 29, 9:22 PM · Restricted Project
craig.topper requested review of D84895: [X86] Teach the assembler parser to handle a '*' between segment register and base/index/displacement part of an address.
Wed, Jul 29, 3:40 PM · Restricted Project
craig.topper committed rGb1c1825b9972: [X86] Remove unused argument from HandleAVX512Operand in the assembly parser. (authored by craig.topper).
[X86] Remove unused argument from HandleAVX512Operand in the assembly parser.
Wed, Jul 29, 2:24 PM
craig.topper added inline comments to D84879: [X86] Separate CPU Feature lists in X86.td between architecture features and tuning features.
Wed, Jul 29, 11:58 AM · Restricted Project
craig.topper updated the diff for D84879: [X86] Separate CPU Feature lists in X86.td between architecture features and tuning features.

Fixed BDWAdditionalFeatures

Wed, Jul 29, 11:34 AM · Restricted Project
craig.topper added inline comments to D84879: [X86] Separate CPU Feature lists in X86.td between architecture features and tuning features.
Wed, Jul 29, 11:30 AM · Restricted Project
craig.topper requested review of D84879: [X86] Separate CPU Feature lists in X86.td between architecture features and tuning features.
Wed, Jul 29, 11:29 AM · Restricted Project
craig.topper committed rGc4823b24a41b: [X86] Add custom lowering for llvm.roundeven with sse4.1. (authored by craig.topper).
[X86] Add custom lowering for llvm.roundeven with sse4.1.
Wed, Jul 29, 10:23 AM
craig.topper committed rG3efc978baede: [LV] Add abs/smin/smax/umin/umax intrinsics to isTriviallyVectorizable (authored by craig.topper).
[LV] Add abs/smin/smax/umin/umax intrinsics to isTriviallyVectorizable
Wed, Jul 29, 10:23 AM
craig.topper closed D84592: [X86] Add custom lowering for llvm.roundeven with sse4.1..
Wed, Jul 29, 10:23 AM · Restricted Project
craig.topper closed D84796: [LV] Add abs/smin/smax/umin/umax intrinsics to isTriviallyVectorizable.
Wed, Jul 29, 10:23 AM · Restricted Project
craig.topper added a comment to D84056: [FPEnv] Don't transform FSUB(-0, X) -> FNEG(X) in SelectionDAGBuilder..

I think this needs to be done in FastISel too?

Wed, Jul 29, 10:02 AM · Restricted Project
craig.topper added reviewers for D84862: [X86] Make ENDBR instruction a scheduling boundary: andreadb, RKSimon.
Wed, Jul 29, 9:32 AM · Restricted Project
craig.topper updated the diff for D84793: [X86] Add assembler support for {disp8} and {disp32} to control the size of displacement used for memory operands..

Add some more variables to make the conditionals positive.
Try to improve some of the comments.

Wed, Jul 29, 9:32 AM · Restricted Project

Tue, Jul 28

craig.topper added a comment to D62017: [CodeGen] Add lrint/llrint builtins.

What is the point of these intrinsics exactly? It seems like it's just copying the libm function names, despite them only differing in the return integer type. Why can't this be accomplished with adding type mangling to the regular rint intrinsic?

I think the primary complication is that we need to know what libcall to emit if the target doesn't natively support them. The backend doesn't know how to map from IR type "long" or "long long" to generate the right libcall.

But does that matter? What does the right library call really mean? I don't think the purpose of the math intrinsics is to wrap libm. Intrinsics should provide functionality independently of whatever the platform libm does. The backend is responsible for figuring out how to codegen any intrinsics which may or may not involve a platform provided library call.

Tue, Jul 28, 7:42 PM · Restricted Project
craig.topper added a comment to D62017: [CodeGen] Add lrint/llrint builtins.

What is the point of these intrinsics exactly? It seems like it's just copying the libm function names, despite them only differing in the return integer type. Why can't this be accomplished with adding type mangling to the regular rint intrinsic?

Tue, Jul 28, 7:25 PM · Restricted Project
craig.topper committed rG06cf6f770d64: [X86] Add FeatureCMPXCHG8B and FeatureSlowUAMem16 to 'lakemont' in X86.td (authored by craig.topper).
[X86] Add FeatureCMPXCHG8B and FeatureSlowUAMem16 to 'lakemont' in X86.td
Tue, Jul 28, 6:26 PM
craig.topper updated the diff for D84796: [LV] Add abs/smin/smax/umin/umax intrinsics to isTriviallyVectorizable.

Check the immediate on the vectorized abs intrinsic

Tue, Jul 28, 2:22 PM · Restricted Project
craig.topper requested review of D84796: [LV] Add abs/smin/smax/umin/umax intrinsics to isTriviallyVectorizable.
Tue, Jul 28, 1:39 PM · Restricted Project
craig.topper accepted D84471: [X86] Fix for ballooning compile times due to Load Value Injection (LVI) mitigations.

LGTM

Tue, Jul 28, 1:29 PM · Restricted Project
craig.topper accepted D84775: [X86] Remove disabled miscompiling X86CondBrFolding pass.

LGTM

Tue, Jul 28, 1:15 PM · Restricted Project
craig.topper requested review of D84793: [X86] Add assembler support for {disp8} and {disp32} to control the size of displacement used for memory operands..
Tue, Jul 28, 1:09 PM · Restricted Project
craig.topper committed rG69152a11cf18: [X86] Merge the two 'Emit the normal disp32 encoding' cases in SIB byte… (authored by craig.topper).
[X86] Merge the two 'Emit the normal disp32 encoding' cases in SIB byte…
Tue, Jul 28, 12:12 PM
craig.topper committed rG91b8c1fd0f31: [X86] Simplify some code in emitMemModRMByte. NFCI (authored by craig.topper).
[X86] Simplify some code in emitMemModRMByte. NFCI
Tue, Jul 28, 10:46 AM
craig.topper committed rG6c3dc6e1d57d: [X86] Merge disp8 and cdisp8 handling into a single helper function to reduce… (authored by craig.topper).
[X86] Merge disp8 and cdisp8 handling into a single helper function to reduce…
Tue, Jul 28, 10:46 AM
craig.topper closed D84730: [X86] Merge disp8 and cdisp8 handling into a single helper function to reduce some code..
Tue, Jul 28, 10:46 AM · Restricted Project
craig.topper requested review of D84730: [X86] Merge disp8 and cdisp8 handling into a single helper function to reduce some code..
Tue, Jul 28, 6:04 AM · Restricted Project

Mon, Jul 27

craig.topper added inline comments to D84592: [X86] Add custom lowering for llvm.roundeven with sse4.1..
Mon, Jul 27, 10:34 PM · Restricted Project
craig.topper committed rG647e861e0803: [X86] Detect if EFLAGs is live across XBEGIN pseudo instruction. Add it as… (authored by craig.topper).
[X86] Detect if EFLAGs is live across XBEGIN pseudo instruction. Add it as…
Mon, Jul 27, 9:24 PM
craig.topper committed rG25f193fb46db: [X86] Add support for {disp32} to control size of jmp and jcc instructions in… (authored by craig.topper).
[X86] Add support for {disp32} to control size of jmp and jcc instructions in…
Mon, Jul 27, 9:24 PM
craig.topper committed rGa0ebac52df6d: [X86] Properly encode a 32-bit address with an index register and no base… (authored by craig.topper).
[X86] Properly encode a 32-bit address with an index register and no base…
Mon, Jul 27, 9:24 PM
craig.topper closed D84479: [X86] Detect if EFLAGs is live across XBEGIN pseudo instruction. Add it as livein to the basic blocks created when expanding the pseudo.
Mon, Jul 27, 9:24 PM · Restricted Project
craig.topper closed D84709: [X86] Add support for {disp32} to control size of jmp and jcc instructions in the assembler.
Mon, Jul 27, 9:23 PM · Restricted Project
Herald added a project to D84709: [X86] Add support for {disp32} to control size of jmp and jcc instructions in the assembler: Restricted Project.
Mon, Jul 27, 4:04 PM · Restricted Project
craig.topper added inline comments to D84471: [X86] Fix for ballooning compile times due to Load Value Injection (LVI) mitigations.
Mon, Jul 27, 2:26 PM · Restricted Project
craig.topper added a reviewer for D84592: [X86] Add custom lowering for llvm.roundeven with sse4.1.: sepavloff.
Mon, Jul 27, 1:22 PM · Restricted Project
craig.topper committed rG51e1c028d402: [X86] Add back comment inadvertently lost in… (authored by craig.topper).
[X86] Add back comment inadvertently lost in…
Mon, Jul 27, 10:03 AM
craig.topper accepted D84620: [StackProtector] Speed up RequiresStackProtector.

LGTM

Mon, Jul 27, 9:36 AM · Restricted Project

Sun, Jul 26

craig.topper added a comment to D84479: [X86] Detect if EFLAGs is live across XBEGIN pseudo instruction. Add it as livein to the basic blocks created when expanding the pseudo.

I don't have strong preference for bwd direction. Let's get this fix in. Are all tests and sanities passing?

Sun, Jul 26, 11:44 PM · Restricted Project
craig.topper added inline comments to D84620: [StackProtector] Speed up RequiresStackProtector.
Sun, Jul 26, 11:41 PM · Restricted Project
craig.topper committed rGdf12524e6ba0: [X86] Turn X86DAGToDAGISel::tryVPTERNLOG into a fully custom instruction… (authored by craig.topper).
[X86] Turn X86DAGToDAGISel::tryVPTERNLOG into a fully custom instruction…
Sun, Jul 26, 12:20 PM
craig.topper closed D83630: [X86] Turn X86DAGToDAGISel::tryVPTERNLOG into a fully custom instruction selector that can handle bitcasts between logic ops.
Sun, Jul 26, 12:19 PM · Restricted Project
craig.topper committed rG1a75d88b3eb4: [X86] Move getGatherOverhead/getScatterOverhead into X86TargetTransformInfo. (authored by craig.topper).
[X86] Move getGatherOverhead/getScatterOverhead into X86TargetTransformInfo.
Sun, Jul 26, 10:57 AM
craig.topper closed D84594: [X86] Move getGatherOverhead/getScatterOverhead into X86TargetTransformInfo..
Sun, Jul 26, 10:57 AM · Restricted Project

Sat, Jul 25

Herald added a project to D84594: [X86] Move getGatherOverhead/getScatterOverhead into X86TargetTransformInfo.: Restricted Project.
Sat, Jul 25, 11:35 PM · Restricted Project
craig.topper committed rG1a1448e6568d: [X86] Merge X86MCInstLowering's maxLongNopLength into emitNop and remove check… (authored by craig.topper).
[X86] Merge X86MCInstLowering's maxLongNopLength into emitNop and remove check…
Sat, Jul 25, 10:53 PM
craig.topper committed rG14c59b457765: [X86] Remove getProcFamily() method from X86Subtarget. NFC (authored by craig.topper).
[X86] Remove getProcFamily() method from X86Subtarget. NFC
Sat, Jul 25, 10:53 PM
craig.topper committed rG1df8804ce575: [X86] Replace a use of ProcIntelSLM with FeatureFast7ByteNOP. (authored by craig.topper).
[X86] Replace a use of ProcIntelSLM with FeatureFast7ByteNOP.
Sat, Jul 25, 8:47 PM