Skip to content
  1. Jul 06, 2013
  2. Jul 05, 2013
    • Rafael Espindola's avatar
      Remove unique_file now that it is unused. · d22debdc
      Rafael Espindola authored
      llvm-svn: 185728
      d22debdc
    • Rafael Espindola's avatar
      Use llvm::sys::fs::createUniqueFile. · 18627115
      Rafael Espindola authored
      Include a test that clang now produces output files with permissions matching
      the umask.
      
      llvm-svn: 185727
      18627115
    • Rafael Espindola's avatar
      Add a createUniqueFile function and switch llvm's users of unique_file. · c9d2e5b8
      Rafael Espindola authored
      This function is complementary to createTemporaryFile. It handles the case were
      the unique file is *not* temporary: we will rename it in the end. Since we
      will rename it, the file has to be in the same filesystem as the final
      destination and we don't prepend the system temporary directory.
      
      This has a small semantic difference from unique_file: the default mode is 0666.
      This matches the behavior of most unix tools. For example, with this change
      lld now produces files with the same permissions as ld. I will add a test
      of this change when I port clang over to createUniqueFile (next commit).
      
      llvm-svn: 185726
      c9d2e5b8
    • Argyrios Kyrtzidis's avatar
      [libclang] Add the new function to libclang.exports · 10357900
      Argyrios Kyrtzidis authored
      llvm-svn: 185725
      10357900
    • Fariborz Jahanian's avatar
      [objc migrator]: More knobs to do migration to · 266926d8
      Fariborz Jahanian authored
      use of objc's properties.
      
      llvm-svn: 185724
      266926d8
    • Michael Gottesman's avatar
      [TRE] Merged several tests into the the test basic.ll. · e283e195
      Michael Gottesman authored
      llvm-svn: 185723
      e283e195
    • Argyrios Kyrtzidis's avatar
      [libclang] Introduce clang_Cursor_isObjCOptional, which returns whether the... · 7b50fc52
      Argyrios Kyrtzidis authored
      [libclang] Introduce clang_Cursor_isObjCOptional, which returns whether the declaration was affected by "@optional"
      
      rdar://14348525.
      
      llvm-svn: 185722
      7b50fc52
    • Eli Friedman's avatar
      Don't use mangleCXXRTTIName in TBAA for C code. · eecc09a9
      Eli Friedman authored
      This changes the TBAA code so it doesn't use mangleCXXRTTIName in C,
      because it doesn't really make sense there.  Also, as sort of a
      defense-in-depth change, fix the mangler so it handles C RecordDecls
      correctly.
      
      No tests because I don't know the TBAA code well enough to write a test,
      and I don't know how else to trigger mangling a local struct in C.
      
      Fixes a crash with r185450 reported by Joerg Sonnenberger.
      
      llvm-svn: 185721
      eecc09a9
    • Sebastian Pop's avatar
      scop detection: remove an iteration over all uses · 784c0129
      Sebastian Pop authored
      reenabled reverted patch after checking that it passes without regressions on
      the nightly test-suite.  Added testcase from Tobi.
      
      llvm-svn: 185720
      784c0129
    • Rafael Espindola's avatar
      Use sys::fs::createTemporaryFile. · 155cf0f3
      Rafael Espindola authored
      llvm-svn: 185719
      155cf0f3
    • Rafael Espindola's avatar
      Use llvm::sys::fs::createTemporaryFile. · 43318aa1
      Rafael Espindola authored
      llvm-svn: 185718
      43318aa1
    • Rafael Espindola's avatar
      Use llvm::sys::fs::createTemporaryFile. · a36e78ef
      Rafael Espindola authored
      llvm-svn: 185717
      a36e78ef
    • Rafael Espindola's avatar
      Add a higher level createTemporaryFile function. · 325fa0fd
      Rafael Espindola authored
      This function is inspired by clang's Driver::GetTemporaryPath. It hides the
      pattern used for uniquing and requires simple file names that are always
      placed in the system temporary directory.
      
      llvm-svn: 185716
      325fa0fd
    • Craig Topper's avatar
      Use SmallVectorImpl& for function arguments instead of SmallVector. · 5603df45
      Craig Topper authored
      llvm-svn: 185715
      5603df45
    • Arnold Schwaighofer's avatar
      ARM: Add a pack pattern for matching arithmetic shift right · 97c1343c
      Arnold Schwaighofer authored
      llvm-svn: 185714
      97c1343c
    • Eli Friedman's avatar
      Fix regression from r185450. · 86af13f0
      Eli Friedman authored
      As it turns out, the NoFunction bit for local class mangling needed to be
      propagated into more places. r185450 turned what used to be an incorrect
      mangling into an assertion.
      
      llvm-svn: 185713
      86af13f0
    • Arnold Schwaighofer's avatar
      ARM: Fix incorrect pack pattern · 50b76b52
      Arnold Schwaighofer authored
      A "pkhtb x, x, y asr #num" uses the lower 16 bits of "y asr #num" and packs them
      in the bottom half of "x". An arithmetic and logic shift are only equivalent in
      this context if the shift amount is 16. We would be shifting in ones into the
      bottom 16bits instead of zeros if "y" is negative.
      
      radar://14338767
      
      llvm-svn: 185712
      50b76b52
    • Howard Hinnant's avatar
      Remove implicit conversion from __value_type to value_type in... · abb160e6
      Howard Hinnant authored
      Remove implicit conversion from __value_type to value_type in [unordered_][multi]map.  This fixes http://llvm.org/bugs/show_bug.cgi?id=16549
      
      llvm-svn: 185711
      abb160e6
    • Fariborz Jahanian's avatar
      Objective-C: diagnose when synthesizing an ivar of · 873bae79
      Fariborz Jahanian authored
      abstract class type. // rdar://14261999
      
      llvm-svn: 185710
      873bae79
    • Sylvestre Ledru's avatar
      Remove a useless declarations (found by scan-build) · 751447a3
      Sylvestre Ledru authored
      llvm-svn: 185709
      751447a3
    • Benjamin Kramer's avatar
      Add a test case for r185707/PR16547. · f5d46005
      Benjamin Kramer authored
      llvm-svn: 185708
      f5d46005
    • Rafael Espindola's avatar
      Fix PR16547. · e4ffbdf3
      Rafael Espindola authored
      We should not be asking unique_file to prepend the system temporary directory
      when creating the html report. Unfortunately I don't think we can test this
      with the current infrastructure since unique_file ignores MakeAbsolute if the
      directory is already absolute and the paths provided by lit are.
      
      I will take a quick look at making this api a bit less error prone.
      
      llvm-svn: 185707
      e4ffbdf3
    • Evgeniy Stepanov's avatar
      [sanitizer] Fix mac build. · c2e3ba9e
      Evgeniy Stepanov authored
      llvm-svn: 185706
      c2e3ba9e
    • Richard Sandiford's avatar
      [SystemZ] Remove no-op MVCs · c40f27b5
      Richard Sandiford authored
      The stack coloring pass has code to delete stores and loads that become
      trivially dead after coloring.  Extend it to cope with single instructions
      that copy from one frame index to another.
      
      The testcase happens to show an example of this kicking in at the moment.
      It did occur in Real Code too though.
      
      llvm-svn: 185705
      c40f27b5
    • Richard Sandiford's avatar
      [SystemZ] Remove redundant frame MMOs · 1ca6deae
      Richard Sandiford authored
      This fixes foldMemoryOperandImpl() so that it doesn't create duplicated
      frame MMOs.  I hadn't realized when writing r185434 that it was the caller's
      responsibility to add these.
      
      No behavioural change intended.
      
      llvm-svn: 185704
      1ca6deae
    • Richard Sandiford's avatar
      Fix double renaming bug in stack coloring pass · b5d9bd6f
      Richard Sandiford authored
      The stack coloring pass renumbered frame indexes with a loop of the form:
      
        for each frame index FI
          for each instruction I that uses FI
            for each use of FI in I
              rename FI to FI'
      
      This caused problems if an instruction used two frame indexes F0 and F1
      and if F0 was renamed to F1 and F1 to F2.  The first time we visited the
      instruction we changed F0 to F1, then we changed both F1s to F2.
      
      In other words, the problem was that SSRefs recorded which instructions
      used an FI, but not which MachineOperands and MachineMemOperands within
      that instruction used it.
      
      This is easily fixed for MachineOperands by walking the instructions
      once and processing each operand in turn.  There's already a loop to
      do that for dead store elimination, so it seemed more efficient to
      fuse the two at the block level.
      
      MachineMemOperands are more tricky because they can be shared between
      instructions.  The patch handles them by making SSRefs an array of
      MachineMemOperands rather than an array of MachineInstrs.  We might end
      up processing the same MachineMemOperand twice, but that's OK because
      we always know from the SSRefs index what the original frame index was.
      
      llvm-svn: 185703
      b5d9bd6f
    • 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
Loading