Skip to content
  1. Sep 12, 2013
    • Hal Finkel's avatar
      Mark PPC MFTB and DST (and friends) as deprecated · 0096dbd5
      Hal Finkel authored
      Use the new instruction deprecation feature to mark mftb (now replaced with
      mfspr) and dst (along with the other Altivec cache control instructions) as
      deprecated when targeting cores supporting at least ISA v2.03.
      
      llvm-svn: 190605
      0096dbd5
    • Elena Demikhovsky's avatar
      LLVM Interpreter: implementation of "insertvalue" and "extractvalue"; · 8e97f016
      Elena Demikhovsky authored
      undef constatnt for structure and test for these functions.
      
      done by Yuri Veselov (mailto:Yuri.Veselov@intel.com)
      
      llvm-svn: 190599
      8e97f016
    • Joey Gouly's avatar
      Add an instruction deprecation feature to TableGen. · 0e76fa7d
      Joey Gouly authored
      The 'Deprecated' class allows you to specify a SubtargetFeature that the
      instruction is deprecated on.
      
      The 'ComplexDeprecationPredicate' class allows you to define a custom
      predicate that is called to check for deprecation.
      For example:
        ComplexDeprecationPredicate<"MCR">
      
      would mean you would have to define the following function:
        bool getMCRDeprecationInfo(MCInst &MI, MCSubtargetInfo &STI,
                                   std::string &Info)
      
      Which returns 'false' for not deprecated, and 'true' for deprecated
      and store the warning message in 'Info'.
      
      The MCTargetAsmParser constructor was chaned to take an extra argument of
      the MCInstrInfo class, so out-of-tree targets will need to be changed.
      
      llvm-svn: 190598
      0e76fa7d
    • Elena Demikhovsky's avatar
      AVX-512: implemented extractelement with variable index. · 8952974e
      Elena Demikhovsky authored
      Added parsing of mask register and "zeroing" semantic, like {%k1} {z}.
      
      llvm-svn: 190595
      8952974e
    • Hal Finkel's avatar
      PPC: Enable aggressive anti-dependency breaking · 7fe6a539
      Hal Finkel authored
      Aggressive anti-dependency breaking is enabled by default for all PPC cores.
      This provides a general speedup on the P7 and other platforms (among other
      factors, the instruction group formation for the non-embedded PPC cores is done
      during post-RA scheduling). In order to do this safely, the incompatibility
      between uses of the MFOCRF instruction and anti-dependency breaking are
      resolved by marking MFOCRF with hasExtraSrcRegAllocReq. As noted in the removed
      FIXME, the problem was that MFOCRF's output is sensitive to the identify of the
      source register, and always paired with a shift to undo this effect. Because
      anti-dependency breaking is unaware of this hidden dependency of the shift
      amount on the source register of the MFOCRF instruction, changing that register
      must be inhibited.
      
      Two test cases were adjusted: The SjLj test was made more insensitive to
      register choices and scheduling; the saveCR test disabled anti-dependency
      breaking because part of what it is testing is proper register reuse.
      
      llvm-svn: 190587
      7fe6a539
    • Hal Finkel's avatar
      Fix crash in AggressiveAntiDepBreaker with empty CriticalPathSet · 6f1ff8e1
      Hal Finkel authored
      If no register classes are added to CriticalPathRCs, then the CriticalPathSet
      bitmask will be empty. In that case, ExcludeRegs must remain NULL or else this
      line will cause a segfault:
      
        } else if ((ExcludeRegs != NULL) && ExcludeRegs->test(AntiDepReg)) {
      
      I have no in-tree test case.
      
      llvm-svn: 190584
      6f1ff8e1
    • Tom Stellard's avatar
      R600/SI: expose TBUFFER_STORE_FORMAT_* for OpenGL transform feedback · afcf12f3
      Tom Stellard authored
      
      
      For _XYZ, the type of VDATA is v4i32, because v3i32 doesn't exist.
      
      The ADDR64 bit is not exposed. A simpler intrinsic that doesn't take
      a resource descriptor might be nicer.
      
      The maximum number of input SGPRs is bumped to 17.
      
      Signed-off-by: default avatarMarek Olšák <marek.olsak@amd.com>
      Reviewed-by: default avatarTom Stellard <thomas.stellard@amd.com>
      llvm-svn: 190575
      afcf12f3
    • Tom Stellard's avatar
      R600: Don't use trans slot for instructions that read LDS source registers · 7f6fa4c4
      Tom Stellard authored
      This fixes some regressions in the piglit local memory store tests
      introduced by recent commits which made the scheduler aware of the trans
      slot.
      
      It's not possible to test this using lit, because there is no way to
      determine from the assembly dumps whether or not an instruction is in
      the trans slot.
      
      Even if this were possible, the test would be highly sensitive to
      changes in the scheduler and might generate confusing false negatives.
      
      Reviewed-by: Vincent Lejeune<vljn at ovi.com>
      llvm-svn: 190574
      7f6fa4c4
    • Matt Arsenault's avatar
      Move variable under condition where it is used · bed5bf2e
      Matt Arsenault authored
      llvm-svn: 190567
      bed5bf2e
    • Matt Arsenault's avatar
      Remove pointless assertion after r190376 · bc08ddba
      Matt Arsenault authored
      llvm-svn: 190565
      bc08ddba
    • Hal Finkel's avatar
      Greatly simplify the PPC A2 scheduling itinerary · f574c277
      Hal Finkel authored
      As Andy pointed out to me a long time ago, there are no structural hazards in
      the later pipeline stages of the A2, and so modeling them is useless. Also,
      modeling the top pre-dispatch stages is deceiving because, when multiple
      hardware threads are active, those resources are shared among the threads. The
      bypass definitions were mostly wrong, and so those have been removed. The
      resulting itinerary is much simpler, and more accurate.
      
      llvm-svn: 190562
      f574c277
    • Hal Finkel's avatar
      Enable MI scheduling (and CodeGen AA) by default for embedded PPC cores · 21442b24
      Hal Finkel authored
      For embedded PPC cores (especially the A2 core), using the MI scheduler with AA
      is far superior to the other scheduling options.
      
      llvm-svn: 190558
      21442b24
  2. Sep 11, 2013
Loading