Skip to content
  1. Aug 04, 2014
    • Saleem Abdulrasool's avatar
      X86: silence warning (-Wparentheses) · 557023e3
      Saleem Abdulrasool authored
      GCC 4.8.2 points out the ambiguity in evaluation of the assertion condition:
      
      lib/Target/X86/X86FloatingPoint.cpp:949:49: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
         assert(STReturns == 0 || isMask_32(STReturns) && N <= 2);
      
      llvm-svn: 214672
      557023e3
    • Saleem Abdulrasool's avatar
      CodeGen: silence a warning · befa2153
      Saleem Abdulrasool authored
      GCC 4.8.2 objects to the tautological condition in the assert as the unsigned
      value is guaranteed to be >= 0.  Simplify the assertion by dropping the
      tautological condition.
      
      llvm-svn: 214671
      befa2153
    • Sanjay Patel's avatar
      fix for PR20354 - Miscompile of fabs due to vectorization · 2ef67440
      Sanjay Patel authored
      This is intended to be the minimal change needed to fix PR20354 ( http://llvm.org/bugs/show_bug.cgi?id=20354 ). The check for a vector operation was wrong; we need to check that the fabs itself is not a vector operation.
      
      This patch will not generate the optimal code. A constant pool load and 'and' op will be generated instead of just returning a value that we can calculate in advance (as we do for the scalar case). I've put a 'TODO' comment for that here and expect to have that patch ready soon.
      
      There is a very similar optimization that we can do in visitFNEG, so I've put another 'TODO' there and expect to have another patch for that too.
      
      llvm-svn: 214670
      2ef67440
    • Gerolf Hoflehner's avatar
      MachineCombiner Pass for selecting faster instruction · 35ba4671
      Gerolf Hoflehner authored
       sequence -  AArch64 target support
      
       This patch turns off madd/msub generation in the DAGCombiner and generates
       them in the MachineCombiner instead. It replaces the original code sequence
       with the combined sequence when it is beneficial to do so.
      
       When there is no machine model support it always generates the madd/msub
       instruction. This is true also when the objective is to optimize for code
       size: when the combined sequence is shorter is always chosen and does not
       get evaluated.
      
       When there is a machine model the combined instruction sequence
       is evaluated for critical path and resource length using machine
       trace metrics and the original code sequence is replaced when it is
       determined to be faster.
      
       rdar://16319955
      
      llvm-svn: 214669
      35ba4671
  2. Aug 03, 2014
    • Justin Bogner's avatar
      Driver: Simplify a use of the path API · 6bcf724f
      Justin Bogner authored
      It's a bit more obvious what's going on if we use path::filename
      rather than decrementing an iterator here.
      
      llvm-svn: 214668
      6bcf724f
    • Jason Molenda's avatar
      Change ProcessGDBRemote::DidLaunchOrAttach to · 921c01b5
      Jason Molenda authored
      call Target::SetArchitecture instead of modifying a
      reference to the target's architecture so that the
      target logging can show that the arch has been changed.
      
      llvm-svn: 214667
      921c01b5
    • Gerolf Hoflehner's avatar
      MachineCombiner Pass for selecting faster instruction · 5e1207e5
      Gerolf Hoflehner authored
       sequence -  target independent framework
      
       When the DAGcombiner selects instruction sequences
       it could increase the critical path or resource len.
      
       For example, on arm64 there are multiply-accumulate instructions (madd,
       msub). If e.g. the equivalent  multiply-add sequence is not on the
       crictial path it makes sense to select it instead of  the combined,
       single accumulate instruction (madd/msub). The reason is that the
       conversion from add+mul to the madd could lengthen the critical path
       by the latency of the multiply.
      
       But the DAGCombiner would always combine and select the madd/msub
       instruction.
      
       This patch uses machine trace metrics to estimate critical path length
       and resource length of an original instruction sequence vs a combined
       instruction sequence and picks the faster code based on its estimates.
      
       This patch only commits the target independent framework that evaluates
       and selects code sequences. The machine instruction combiner is turned
       off for all targets and expected to evolve over time by gradually
       handling DAGCombiner pattern in the target specific code.
      
       This framework lays the groundwork for fixing
       rdar://16319955
      
      llvm-svn: 214666
      5e1207e5
    • Tobias Grosser's avatar
      Do allow negative offsets in the outermost array dimension · f57d63f9
      Tobias Grosser authored
      There is no needed for neither 1-dimensional nor higher dimensional arrays to
      require positive offsets in the outermost array dimension.
      
      We originally introduced this assumption with the support for delinearizing
      multi-dimensional arrays.
      
      llvm-svn: 214665
      f57d63f9
    • Saleem Abdulrasool's avatar
      MC: virtualise EmitWindowsUnwindTables · 4544c16e
      Saleem Abdulrasool authored
      This makes EmitWindowsUnwindTables a virtual function and lowers the
      implementation of the function to the X86WinCOFFStreamer.  This method is a
      target specific operation.  This enables making the behaviour target dependent
      by isolating it entirely to the target specific streamer.
      
      llvm-svn: 214664
      4544c16e
    • Saleem Abdulrasool's avatar
      MC: rename Win64EHFrameInfo to WinEH::FrameInfo · b3be7371
      Saleem Abdulrasool authored
      The frame information stored in this structure is driven by the requirements for
      Windows NT unwinding rather than Windows 64 specifically.  As a result, this
      type can be shared across multiple architectures (ARM, AXP, MIPS, PPC, SH).
      Rename this class in preparation for adding support for supporting unwinding
      information for Windows on ARM.
      
      Take the opportunity to constify the members as everything except the
      ChainedParent is read-only.  This required some adjustment to the label
      handling.
      
      llvm-svn: 214663
      b3be7371
    • Simon Atanasyan's avatar
      [Mips] Add the `mips64-linux-gnu` target to the test case to check `in128` · 3ab94b91
      Simon Atanasyan authored
      type handling.
      
      llvm-svn: 214662
      3ab94b91
    • Matt Arsenault's avatar
      R600/SI: Fix extra whitespace in asm str · 9215b17e
      Matt Arsenault authored
      This slipped in in r214467, so something like
      
      V_MOV_B32_e32  v0, ... is now printed with 2 spaces
      between the instruction name and first operand.
      
      llvm-svn: 214660
      9215b17e
    • Johannes Doerfert's avatar
      Fix the modifiable access creation · a63b2579
      Johannes Doerfert authored
        + Remove the class IslGenerator which duplicates the functionality of
          IslExprBuilder.
        + Use the IslExprBuilder to create code for memory access relations.
          + Also handle array types during access creation.
        + Enable scev codegen for one of the transformed memory access tests,
          thus access creation without canonical induction variables available.
        + Update one test case to the new output.
      
      llvm-svn: 214659
      a63b2579
    • Johannes Doerfert's avatar
      Allow the IslExprBuilder to generate access operations · ed878311
      Johannes Doerfert authored
      llvm-svn: 214658
      ed878311
    • Johannes Doerfert's avatar
      Update the jscop tests and port them to isl codegen. · b5d1c322
      Johannes Doerfert authored
        The updated tests use a different context than the old ones did.
        Other than that only their path and the code generation we use
        changed.
      
      llvm-svn: 214657
      b5d1c322
    • NAKAMURA Takumi's avatar
    • Manman Ren's avatar
      [SimplifyCFG] fix accessing deleted PHINodes in switch-to-table conversion. · 062f58d5
      Manman Ren authored
      When we have a covered lookup table, make sure we don't delete PHINodes that
      are cached in PHIs.
      
      rdar://17887153
      
      llvm-svn: 214642
      062f58d5
  3. Aug 02, 2014
Loading