Skip to content
  1. Jan 04, 2016
    • Haicheng Wu's avatar
      This is a test commit to check my commit access works. · 80b78d39
      Haicheng Wu authored
      llvm-svn: 256767
      80b78d39
    • Geoff Berry's avatar
      [AArch64] Optimize some simple TBZ/TBNZ cases. · 9e934b0c
      Geoff Berry authored
      Summary:
      Add some AArch64 dag combines to optimize some simple TBZ/TBNZ cases:
      
       (tbz (and x, m), b) -> (tbz x, b)
       (tbz (shl x, c), b) -> (tbz x, b-c)
       (tbz (shr x, c), b) -> (tbz x, b+c)
       (tbz (xor x, -1), b) -> (tbnz x, b)
      
      Reviewers: jmolloy, mcrosier, t.p.northover
      
      Subscribers: aemerson, rengolin, llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D15702
      
      llvm-svn: 256765
      9e934b0c
    • Paul Robinson's avatar
      Clang-format my previous change (r256313) · e95fa425
      Paul Robinson authored
      llvm-svn: 256764
      e95fa425
    • David Majnemer's avatar
      [LICM] Don't insert instructions after a catchswitch when performing loop promotion · 219055f9
      David Majnemer authored
      Inserting after a catchswitch results in verifier errors, bail out on
      promotion if a catchswitch is a loop exit.
      
      llvm-svn: 256763
      219055f9
    • Nick Lewycky's avatar
      Fix comment in typo. NFC · 947ca8ac
      Nick Lewycky authored
      llvm-svn: 256761
      947ca8ac
    • Joseph Tremoulet's avatar
      [WinEH] Update CoreCLR EH state numbering · 52f729a6
      Joseph Tremoulet authored
      Summary:
      Fix the CLR state numbering to generate correct tables, and update the lit
      test to verify them.
      
      The CLR numbering assigns one state number to each catchpad and
      cleanuppad.
      
      It also computes two tree-like relations over states:
       1) Each state has a "HandlerParentState", which is the state of the next
          outer handler enclosing this state's handler (same as nearest ancestor
          per the ParentPad linkage on EH pads, but skipping over catchswitches).
       2) Each state has a "TryParentState", which:
          a) for a catchpad that's not the last handler on its catchswitch, is
             the state of the next catchpad on that catchswitch.
          b) for all other pads, is the state of the pad whose try region is the
             next outer try region enclosing this state's try region.  The "try
             regions are not present as such in the IR, but will be inferred
             based on the placement of invokes and pads which reach each other
             by exceptional exits.
      
      Catchswitches do not get their own states, but each gets mapped to the
      state of its first catchpad.
      
      Table generation requires each state's "unwind dest" state to have a lower
      state number than the given state.
      
      Since HandlerParentState can be computed as a function of a pad's
      ParentPad, and TryParentState can be computed as a function of its unwind
      dest and the TryParentStates of its children, the CLR state numbering
      algorithm first computes HandlerParentState in a top-down pass, then
      computes TryParentState in a bottom-up pass.
      
      Also reword some comments/names in the CLR EH table generation to make the
      distinction between the different kinds of "parent" clear.
      
      
      Reviewers: rnk, andrew.w.kaylor, majnemer
      
      Subscribers: AndyAyers, llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D15325
      
      llvm-svn: 256760
      52f729a6
    • Nicolai Haehnle's avatar
      AMDGPU: Avoid assertions after SGPR spilling failed · e705aadd
      Nicolai Haehnle authored
      Summary:
      The comment explains it: emitError does not necessarily exit the compilation
      process, and then using NoRegister leads to assertions later on.
      This generates incorrect code, of course, but the user should know to not use
      the result when an error has been emitted.
      
      It would be nice to have a test-case for this inside the LLVM repository,
      but llc exits on error. shader-db tests trigger the underlying issue at least
      on Tonga.
      
      Reviewers: arsenm, tstellarAMD, mareko
      
      Subscribers: arsenm, llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D15826
      
      llvm-svn: 256757
      e705aadd
    • Michael Zuckerman's avatar
      [AVX512] add PSRAD and PSRAQ Intrinsic · cf0b6db9
      Michael Zuckerman authored
      Differential Revision: http://reviews.llvm.org/D15851
      
      llvm-svn: 256754
      cf0b6db9
    • Michael Zuckerman's avatar
      [AVX512] add PSRAW Intrinsic · 000fca44
      Michael Zuckerman authored
      Differential Revision: http://reviews.llvm.org/D15850
      
      llvm-svn: 256751
      000fca44
    • Jeroen Ketema's avatar
      [MC] Fix file name in file header · 5a02dc46
      Jeroen Ketema authored
      llvm-svn: 256749
      5a02dc46
    • Michael Zuckerman's avatar
      [AVX512] add PSRLV Intrinsic · 068bc2f2
      Michael Zuckerman authored
      Differential Revision: http://reviews.llvm.org/D15838
      
      llvm-svn: 256747
      068bc2f2
    • Chandler Carruth's avatar
      Fix a horrible infloop in value tracking in the face of dead code. · 7664127f
      Chandler Carruth authored
      Amazingly, we just never triggered this without:
      1) Moving code around for MetadataTracking so that a certain *different*
         amount of inlining occurs in the per-TU compile step.
      2) Then you LTO opt or clang with a bootstrap, and get inlining, loop
         opts, and GVN line up everything *just* right.
      
      I don't really know how we didn't hit this before. We really need to be
      fuzz testing stuff, it shouldn't be hard to trigger. I'm working on
      crafting a reduced nice test case, and will submit that when I have it,
      but I want to get LTO build bots going again.
      
      llvm-svn: 256735
      7664127f
    • Craig Topper's avatar
      [TableGen] Fix a typo in r256733. · ec9a5895
      Craig Topper authored
      llvm-svn: 256734
      ec9a5895
    • Craig Topper's avatar
      [TableGen] Use some free space in Init to store the opcode for... · 5a6dda53
      Craig Topper authored
      [TableGen] Use some free space in Init to store the opcode for UnOpInit/BinOpInit/TernOpInit allowing those types to be a little smaller. NFC
      
      llvm-svn: 256733
      5a6dda53
    • Craig Topper's avatar
      [TableGen] Call llvm_shutdown on exit so that all the ManagedStatic objects in... · dc6c3fc3
      Craig Topper authored
      [TableGen] Call llvm_shutdown on exit so that all the ManagedStatic objects in the support library will be deleted.
      
      llvm-svn: 256732
      dc6c3fc3
    • David Majnemer's avatar
      [X86] Make hasFP constant time · ca1c9f07
      David Majnemer authored
      We need a frame pointer if there is a push/pop sequence after the
      prologue in order to unwind the stack.  Scanning the instructions to
      figure out if this happened made hasFP not constant-time which is a
      violation of expectations.  Let's compute this up-front and reuse that
      computation when we need it.
      
      llvm-svn: 256730
      ca1c9f07
    • David Majnemer's avatar
      [LICM] Make instruction sinking funclet-aware · 42a0730c
      David Majnemer authored
      We had two bugs here:
      - We might try to sink into a catchswitch, causing verifier failures.
      - We will succeed in sinking into a cleanuppad but we didn't update the
        funclet operand bundle.
      
      This fixes PR26000.
      
      llvm-svn: 256728
      42a0730c
    • Craig Topper's avatar
      [TableGen] Change TGParser::SetValue to take an ArrayRef instead of... · cfd81733
      Craig Topper authored
      [TableGen] Change TGParser::SetValue to take an ArrayRef instead of std::vector reference. Use None in many places where a default constructed vector was being passed. NFC
      
      llvm-svn: 256726
      cfd81733
    • Craig Topper's avatar
      [TableGen] Fix a bug that caused the wrong name for a record built from a... · 1e23ed9e
      Craig Topper authored
      [TableGen] Fix a bug that caused the wrong name for a record built from a multiclass containing a defm called NAME that references another multiclass that contains a defm that uses NAME concatenated with other strings.
      
      It would end up doing the concatenations from the second multiclass twice. This occured because SetValue detected a self assignment when trying to set the value of NAME to a VarInit called NAME. NAME is special here and it will get cleaned up later. So add a flag to suppress the self assignment check for this case.
      
      Strangely the self-assignment error was returning false indicating it wasn't an error, but it wasn't doing the right thing. So this also changes it to report an error.
      
      This fixes the names of some AVX512 FMA instructions that showed this double expansion.
      
      llvm-svn: 256725
      1e23ed9e
    • NAKAMURA Takumi's avatar
      0c3b204e
  2. Jan 03, 2016
Loading