Skip to content
  1. Jul 05, 2013
    • Rafael Espindola's avatar
      We don't need to check for windows' error codes in here. · 1d0912a4
      Rafael Espindola authored
      The operator== calls equivalent which calls default_error_condition which
      handles windows to posix conversion.
      
      llvm-svn: 185702
      1d0912a4
    • Richard Sandiford's avatar
      [SystemZ] Enable the use of MVC for frame-to-frame spills · 8976ea72
      Richard Sandiford authored
      ...now that the problem that prompted the restriction has been fixed.
      
      The original spill-02.py was a compromise because at the time I couldn't
      find an example that actually failed without the two scavenging slots.
      The version included here did.
      
      llvm-svn: 185701
      8976ea72
    • Ulrich Weigand's avatar
      · b2044311
      Ulrich Weigand authored
      [PowerPC] Add some special @got@tprel fixup cases
      
      When a target@got@tprel or target@got@tprel@l symbol variant is used in
      a fixup_ppc_half16 (*not* fixup_ppc_half16ds) context, we currently fail,
      since the corresponding R_PPC64_GOT_TPREL16 / R_PPC64_GOT_TPREL16_LO
      relocation types do not exist.
      
      However, since such symbol variants resolve to GOT offsets which are
      always 4-aligned, we can simply instead use the _DS variants of the
      relocation types, which *do* exist.
      
      The same applies for the @got@dtprel variants.
      
      llvm-svn: 185700
      b2044311
    • Daniel Jasper's avatar
      Fix formatting for allocation of new pointer variables. · 6f9c8d21
      Daniel Jasper authored
      Before:
      T **t = new T * ;
      T **q = new T * ();
      
      After:
      T **t = new T *;
      T **q = new T *();
      
      llvm-svn: 185699
      6f9c8d21
    • Richard Sandiford's avatar
      [SystemZ] Allocate a second register scavenging slot · 23943229
      Richard Sandiford authored
      This is another prerequisite for frame-to-frame MVC copies.
      I'll commit the patch that makes use of the slot separately.
      
      The downside of trying to test many corner cases with each of the
      available addressing modes is that a fair few tests need to account
      for the new frame layout.  I do still think it's useful to have all
      these tests though, since it's something that wouldn't get much coverage
      otherwise.
      
      llvm-svn: 185698
      23943229
    • Rafael Espindola's avatar
      8ef843fc
    • Richard Sandiford's avatar
      [SystemZ] Clean up register scavenging code · 5dd52f8c
      Richard Sandiford authored
      SystemZ wants normal register scavenging slots, as close to the stack or
      frame pointer as possible.  The only reason it was using custom code was
      because PrologEpilogInserter assumed an x86-like layout, where the frame
      pointer is at the opposite end of the frame from the stack pointer.
      This meant that when frame pointer elimination was disabled,
      the slots ended up being as close as possible to the incoming
      stack pointer, which is the opposite of what we want on SystemZ.
      
      This patch adds a new knob to say which layout is used and converts
      SystemZ to use target-independent scavenging slots.  It's one of the pieces
      needed to support frame-to-frame MVCs, where two slots might be required.
      
      The ABI requires us to allocate 160 bytes for calls, so one approach
      would be to use that area as temporary spill space instead.  It would need
      some surgery to make sure that the slot isn't live across a call though.
      
      I stuck to the "isFPCloseToIncomingSP - ..." style comment on the
      "do what the surrounding code does" principle.  The FP case is already
      covered by several Systemz/frame-* tests, which fail without the
      PrologueEpilogueInserter change, so no new ones are needed.
      
      No behavioural change intended.
      
      llvm-svn: 185696
      5dd52f8c
    • Rafael Espindola's avatar
      Use simpler version of exists. · 0910ff2c
      Rafael Espindola authored
      llvm-svn: 185695
      0910ff2c
    • Ulrich Weigand's avatar
      · 5abd12fc
      Ulrich Weigand authored
      [PowerPC] Make test case buildable with GNU as
      
      The ppc64-fixups.s test currently fails to build with GNU as, since it
      does not support plain symbols as arguments to li/lis.  Rewrite the test
      for R_PPC64_ADDR16 and R_PPC64_REL16 to use lwz instead.
      
      Allowing the test case to be built with both LLVM and GNU as makes it
      easier to spot unwanted difference in the output.
      
      llvm-svn: 185694
      5abd12fc
    • Evgeniy Stepanov's avatar
      [msan] Intercept pthread_key_create. · 628d7277
      Evgeniy Stepanov authored
      llvm-svn: 185693
      628d7277
    • Ulrich Weigand's avatar
      · 5b427591
      Ulrich Weigand authored
      [PowerPC] Support @tls in the asm parser
      
      This adds support for the last missing construct to parse TLS-related
      assembler code:
         add 3, 4, symbol@tls
      
      The ADD8TLS currently hard-codes the @tls into the assembler string.
      This cannot be handled by the asm parser, since @tls is parsed as
      a symbol variant.  This patch changes ADD8TLS to have the @tls suffix
      printed as symbol variant on output too, which allows us to remove
      the isCodeGenOnly marker from ADD8TLS.  This in turn means that we
      can add a AsmOperand to accept @tls marked symbols on input.
      
      As a side effect, this means that the fixup_ppc_tlsreg fixup type
      is no longer necessary and can be merged into fixup_ppc_nofixup.
      
      llvm-svn: 185692
      5b427591
    • Rafael Espindola's avatar
      Remove NoOperation. · 544615f8
      Rafael Espindola authored
      parseCommandLine prints and error and exists if no operation is specified, so
      it never returns NoOperation.
      
      llvm-svn: 185691
      544615f8
    • Rui Ueyama's avatar
      [PECOFF] Use yaml2obj to avoid checking in binary files. · d769cec6
      Rui Ueyama authored
      llvm-svn: 185690
      d769cec6
    • Benjamin Kramer's avatar
      Simplify code. No functionality change. · 5dbec7d9
      Benjamin Kramer authored
      llvm-svn: 185689
      5dbec7d9
    • Joey Gouly's avatar
      PR16490: fix a crash in ARMDAGToDAGISel::SelectInlineAsm. · 606f3fbc
      Joey Gouly authored
      In the SelectionDAG immediate operands to inline asm are constructed as
      two separate operands. The first is a constant of value InlineAsm::Kind_Imm
      and the second is a constant with the value of the immediate.
      
      In ARMDAGToDAGISel::SelectInlineAsm, if we reach an operand of Kind_Imm we
      should skip over the next operand too.
      
      llvm-svn: 185688
      606f3fbc
    • Daniel Jasper's avatar
      Improve detection for preventing certain kind of formatting patterns. · 0e90c3d9
      Daniel Jasper authored
      This is a better implementation of r183097. The main purpose is to
      prevent certain constructs to be formatted "like a block of text".
      
      Before:
      aaaaaaaaaaaaa<
          aaaaaaaaaa, aaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
          aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa>* aaaa = new aaaaaaaaaaaaa<
          aaaaaaaaaa, aaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
          aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa>(bbbbbbbbbbbbbbbbbbbbbbbb);
      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[
          bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb] = (*cccccccccccccccc)[
          dddddddddddddddddddddddddddddddddddddddddddddddddddddddd];
      
      After:
      aaaaaaaaaaaaa<aaaaaaaaaa, aaaaaaaaaaa,
                    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
                    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa>* aaaa =
          new aaaaaaaaaaaaa<aaaaaaaaaa, aaaaaaaaaaa,
                            aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
                            aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa>(
              bbbbbbbbbbbbbbbbbbbbbbbb);
      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[
          bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb] =
          (*cccccccccccccccc)[
              dddddddddddddddddddddddddddddddddddddddddddddddddddddddd];
      
      llvm-svn: 185687
      0e90c3d9
    • Evgeniy Stepanov's avatar
      [sanitizer] Disable ptrace interception on non-x86(_64). · 0d1d35ae
      Evgeniy Stepanov authored
      Patch by Hal Finkel.
      
      llvm-svn: 185686
      0d1d35ae
    • Daniel Jasper's avatar
      Don't break after a "(" following a binary operator. · 1bc1b502
      Daniel Jasper authored
      Additionally, allow breaking after c-style casts, but with a high
      penalty.
      
      Before:
      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa *foo = (
          aaaaaaaaaaaaaaaaa *)bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb;
      After:
      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa *foo = (aaaaaaaaaaaaaaaaa *)
          bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb;
      
      This fixes llvm.org/PR16049.
      
      llvm-svn: 185685
      1bc1b502
    • David Majnemer's avatar
      Sema: Call IgnoreParens fewer times in CheckAddressOfOperand · 0f328447
      David Majnemer authored
      llvm-svn: 185684
      0f328447
    • Craig Topper's avatar
      Use typedef for Densemap contraining SmallVector passed to a function to avoid... · 3598eb7e
      Craig Topper authored
      Use typedef for Densemap contraining SmallVector passed to a function to avoid repeating SmallVector size.
      
      llvm-svn: 185683
      3598eb7e
    • Craig Topper's avatar
      Add typedefs for Densemaps containing SmallVectors to avoid repeating the... · 79be4cdd
      Craig Topper authored
      Add typedefs for Densemaps containing SmallVectors to avoid repeating the SmallVector size when creating iterators for the DenseMap.
      
      llvm-svn: 185682
      79be4cdd
    • Rafael Espindola's avatar
      Don't treat bitcode files specially in llvm-ar. · 46312e8e
      Rafael Espindola authored
      We really want bitcode files to behave as regular object files in archives, so
      we don't need to track that a member is bitcode.
      
      llvm-svn: 185681
      46312e8e
    • Rafael Espindola's avatar
      Use the raw member names in Archive::Archive. · 6cc2dc71
      Rafael Espindola authored
      This a bit more efficient and avoids having a function that uses the string
      table being called by a function that searches for it.
      
      llvm-svn: 185680
      6cc2dc71
    • Rafael Espindola's avatar
      c8c995a2
    • Rafael Espindola's avatar
      Add a --crash option to not. · 91487584
      Rafael Espindola authored
      Now the two possible uses of not are
      * not cmd
        Will return true if cmd doesn't crash and returns false.
      * not --crash cmd
        Will return true if cmd crashes.
      
      It will be used/tested in a followup commit for the clang crash recovery
      testing.
      
      llvm-svn: 185678
      91487584
    • David Majnemer's avatar
      InstCombine: (icmp eq B, 0) | (icmp ult A, B) -> (icmp ule A, B-1) · c2a990bc
      David Majnemer authored
      This transform allows us to turn IR that looks like:
        %1 = icmp eq i64 %b, 0
        %2 = icmp ult i64 %a, %b
        %3 = or i1 %1, %2
        ret i1 %3
      
      into:
        %0 = add i64 %b, -1
        %1 = icmp uge i64 %0, %a
        ret i1 %1
      
      which means we go from lowering:
              cmpq    %rsi, %rdi
              setb    %cl
              testq   %rsi, %rsi
              sete    %al
              orb     %cl, %al
              ret
      
      to lowering:
              decq    %rsi
              cmpq    %rdi, %rsi
              setae   %al
              ret
      
      llvm-svn: 185677
      c2a990bc
    • Ahmed Bougacha's avatar
      Remove use of asymmetric std::lower_bound comparator. · 156a2dea
      Ahmed Bougacha authored
      VS 2008 doesn't like it when in debug mode.
      
      llvm-svn: 185676
      156a2dea
    • David Blaikie's avatar
      DebugInfo: Consider global variables without locations to be valid · 9a300bda
      David Blaikie authored
      We were being a bit too aggresive here in classifying global variables
      with no global reference or constant value to be invalid - this would
      cause LLVM to not emit the DWARF description of the global variable if
      it had been optimized away, which isn't helpful for users who might
      benefit from the global variable's description even if there's no
      location information.
      
      This also fixes a crasher issue here that I was unable to reduce a test
      case for - involving a using decl (& subsequent
      DW_TAG_imported_declaration ) of such a global variable that, once
      optimized away, would crash when an attempt to emit the imported
      declaration was made.
      
      llvm-svn: 185675
      9a300bda
    • James Dennett's avatar
      Add some more documentation on how to navigate from a LambdaExpr::Capture · b46f7b97
      James Dennett authored
      to the associated FieldDecl.
      
      llvm-svn: 185674
      b46f7b97
    • Rafael Espindola's avatar
      Use a OwningPtr instead of a manual delete. · 9a218545
      Rafael Espindola authored
      llvm-svn: 185673
      9a218545
    • James Dennett's avatar
      Minor documentation cleanup · 3947f567
      James Dennett authored
      llvm-svn: 185672
      3947f567
  2. Jul 04, 2013
Loading