Skip to content
  1. Jun 18, 2018
    • Florian Hahn's avatar
      [VPlanRecipeBase] Add eraseFromParent(). · 63cbcf98
      Florian Hahn authored
      Reviewers: dcaballe, hsaito, mkuper, hfinkel
      
      Reviewed By: dcaballe
      
      Differential Revision: https://reviews.llvm.org/D48081
      
      llvm-svn: 334951
      63cbcf98
    • Sander de Smalen's avatar
      [AArch64][SVE] Asm: Support for saturating INC/DEC (64bit scalar) instructions. · 13684d84
      Sander de Smalen authored
      Summary:
      The variants added by this patch are:
      - SQINC  (signed increment)
      - UQINC  (unsigned increment)
      - SQDEC  (signed decrement)
      - UQDEC  (unsigned decrement)
      
      For example:
        uqincw  x0, all, mul #4
      
      Reviewers: rengolin, fhahn, SjoerdMeijer, samparker, javed.absar
      
      Differential Revision: https://reviews.llvm.org/D47715
      
      llvm-svn: 334948
      13684d84
    • Simon Pilgrim's avatar
      [X86][BtVer2] Flag AVX2+ scheduler classes as unsupported · 9173c97c
      Simon Pilgrim authored
      Jaguar only supports up to AVX1
      
      Differential Revision: https://reviews.llvm.org/D48274
      
      llvm-svn: 334947
      9173c97c
    • Andrea Di Biagio's avatar
      [llvm-mca] Add tests for XOP and AVX512 instructions that implicitly clear the... · 487da729
      Andrea Di Biagio authored
      [llvm-mca] Add tests for XOP and AVX512 instructions that implicitly clear the upper portion of a super-register.
      
      When the destination register of a XOP instruction is an XMM register, bits
      [255:128] of the corresponding YMM register are cleared.
      
      When the destination register of a EVEX encoded instruction is an XMM/YMM
      register, the upper bits of the corresponding ZMM are cleared.
      On processors that feature AVX512, a write to an XMM registers always clears the
      upper portion of the corresponding ZMM register if the instruction is VEX or
      EVEX encoded.
      
      These new tests show some interesting cases which aren't correctly analyzed by
      llvm-mca. The lack of knowledge related to the implicit update on the
      super-registers is addressed by D48225.
      
      llvm-svn: 334945
      487da729
    • Florian Hahn's avatar
      [VPlan] Fix sanitizer problem with insertBefore. · 3bcff366
      Florian Hahn authored
      llvm-svn: 334943
      3bcff366
    • Sander de Smalen's avatar
      [TableGen][AsmMatcherEmitter] Allow tied operands of different classes in aliases. · 118099a6
      Sander de Smalen authored
      Allow a tied operand of a different operand class in InstAliases,
      so that the operand can be printed (and added to the MC instruction)
      as the appropriate register. For example, 'GPR64as32', which would
      be printed/parsed as a 32bit register and should match a tied 64bit
      register operand, where the former is a sub-register of the latter.
      
      This patch also generalizes the constraint checking to an overrideable
      method in MCTargetAsmParser, so that target asmparsers can specify
      whether a given operand satisfies the tied register constraint.
      
      Reviewers: olista01, rengolin, fhahn, SjoerdMeijer, samparker, dsanders, craig.topper
      
      Reviewed By: fhahn
      
      Differential Revision: https://reviews.llvm.org/D47714
      
      llvm-svn: 334942
      118099a6
    • Paul Robinson's avatar
      Update copyright year to 2018. · 7555c589
      Paul Robinson authored
      llvm-svn: 334936
      7555c589
    • Simon Pilgrim's avatar
      99a58320
    • Florian Hahn's avatar
      [VPlanRecipeBase] Add insertBefore helper. · 7591e4e9
      Florian Hahn authored
      Reviewers: dcaballe, mkuper, hfinkel, hsaito, mssimpso
      
      Reviewed By: dcaballe
      
      Differential Revision: https://reviews.llvm.org/D48080
      
      llvm-svn: 334933
      7591e4e9
    • Clement Courbet's avatar
      [llvm-exegesis] Optionally ignore instructions without a sched class. · e752fd65
      Clement Courbet authored
      Summary: See PR37602.
      
      Reviewers: RKSimon
      
      Subscribers: llvm-commits, tschuett
      
      Differential Revision: https://reviews.llvm.org/D48267
      
      llvm-svn: 334932
      e752fd65
    • Sander de Smalen's avatar
      [AArch64][SVE] Asm: Support for vector element compares. · d521c435
      Sander de Smalen authored
      This patch adds instructions for comparing elements from two vectors, e.g.
        cmpgt p0.s, p0/z, z0.s, z1.s
      
      and also adds support for comparing to a 64-bit wide element vector, e.g.
        cmpgt p0.s, p0/z, z0.s, z1.d
      
      The patch also contains aliases for certain comparisons, e.g.:
        cmple p0.s, p0/z, z0.s, z1.s => cmpge p0.s, p0/z, z1.s, z0.s
        cmplo p0.s, p0/z, z0.s, z1.s => cmphi p0.s, p0/z, z1.s, z0.s
        cmpls p0.s, p0/z, z0.s, z1.s => cmphs p0.s, p0/z, z1.s, z0.s
        cmplt p0.s, p0/z, z0.s, z1.s => cmpgt p0.s, p0/z, z1.s, z0.s
      
      llvm-svn: 334931
      d521c435
    • Clement Courbet's avatar
      [X86] Fix NOOP sched overrides on BDW/HSW/SKL. · 0d9da88d
      Clement Courbet authored
      Summary: Noop certainly does not use resources.
      
      Reviewers: RKSimon, craig.topper, andreadb
      
      Subscribers: gbedwell, llvm-commits, gchatelet
      
      Differential Revision: https://reviews.llvm.org/D48028
      
      llvm-svn: 334927
      0d9da88d
    • Craig Topper's avatar
      [X86] Create X86InstrFMA3Group objects fully in a static table instead of on the heap. NFCI · f0ab7bd1
      Craig Topper authored
      Previously we heap allocated the X86InstrFMA3Group objects which were created by passing them small register/memory opcode arrays that existed as individual static tables.
      
      Rather than a bunch of small static arrays we now have one large static table of X86InstrFMA3Group objects. Rather than storing a pointer to the opcode arrays in the X86InstrFMA3Group object, we now store have a register and memory array as part of the object. If a group doesn't have memory or register opcodes, the array entries will be 0.
      
      This greatly simplifies the destruction of the X86InstrFMA3Info object. We no longer need to delete the X86InstrFMA3Group objects as we destruct the DenseMap. And we don't need to keep track of which ones we already deleted.
      
      This reduces the llc binary size on my local machine by ~50k. I can only assume that's really due to the fact that we had something like 512 small static arrays that we passed to the init functions either one at a time or in pairs. So there were between 256 and 512 distinct calls to the init functions in the initOnceImpl method.
      
      llvm-svn: 334925
      f0ab7bd1
    • Craig Topper's avatar
      [X86] Add '.s' aliases to the assembler for the various redundant move... · 16fdde5e
      Craig Topper authored
      [X86] Add '.s' aliases to the assembler for the various redundant move encodings to match gas and our EVEX instructions.
      
      We already have these aliases for EVEX enocded instructions, but not for the GPR, MMX, SSE, and VEX versions.
      
      Also remove the vpextrw.s EVEX alias. That's not something gas implements.
      
      llvm-svn: 334922
      16fdde5e
    • Craig Topper's avatar
      [X86] Move the 'vmovq.s' and similar assembly strings for EVEX vector moves... · 916d0cf6
      Craig Topper authored
      [X86] Move the 'vmovq.s' and similar assembly strings for EVEX vector moves with reversed operands to InstAliases.
      
      The .s assembly strings allow the reversed forms to be targeted from assembly which matches gas behavior. But when printing the instructions we should print them without the .s to match other tooling like objdump. By using InstAliases we can use the normal string in the instruction and just hide it from the assembly parser.
      
      Ideally we'd add the .s versions to the legacy SSE and VEX versions as well for full compatibility with gas. Not sure how we got to state where only EVEX was supported.
      
      llvm-svn: 334920
      916d0cf6
    • Craig Topper's avatar
      [TableGen] Prevent double flattening of InstAlias asm strings in the asm matcher emitter. · 2be74395
      Craig Topper authored
      Unlike CodeGenInstruction, CodeGenInstAlias was flatting asm strings in its constructor. For instructions it was the users responsibility to flatten the string.
      
      AsmMatcherEmitter didn't know this and treated them the same. This caused double flattening of InstAliases. This is mostly harmless unless the desired assembly string contains curly braces. The second flattening wouldn't know to ignore these and would remove the curly braces. And for variant 1 it would remove the contents of them as well.
      
      To mitigate this, this patch makes removes the flattening from the CodeGenIntAlias constructor and modifies AsmWriterEmitter to account for the flattening not having been done.
      
      llvm-svn: 334919
      2be74395
    • Lang Hames's avatar
      [ORC] Remove redundant condition · 0705ee8d
      Lang Hames authored
      llvm-svn: 334918
      0705ee8d
  2. Jun 17, 2018
  3. Jun 16, 2018
Loading