Skip to content
  1. Jun 30, 2015
  2. Jun 29, 2015
    • Rui Ueyama's avatar
      Move llvm_unreachable out of switch to avoid -Wswitch-covered-defualt. · 579c2153
      Rui Ueyama authored
      llvm-svn: 241008
      579c2153
    • Ben Langmuir's avatar
      Revert "Use gethostuuid() on Mac to identify hosts for LockFileManager" · 5123eecd
      Ben Langmuir authored
      Broke non-Mac builds.
      
      This reverts commit r241005.
      
      llvm-svn: 241007
      5123eecd
    • Keno Fischer's avatar
      Add -lpthread to LLDB shared lib link line unconditionally · 121c1c54
      Keno Fischer authored
      Usually -lpthread is included due to LLVM link options,
      but when LLVM threading is disabled, this does not happen.
      pthread is still needed however because LLDB uses threading
      regardless of whether LLVM is built with threading support or not.
      
      Differential Revision: http://reviews.llvm.org/D5431
      
      llvm-svn: 241006
      121c1c54
    • Ben Langmuir's avatar
      Use gethostuuid() on Mac to identify hosts for LockFileManager · c349cf39
      Ben Langmuir authored
      The hostname can be very unstable when there are many machines on the
      network competing for the same name. Using the hardware UUID makes it
      less likely to have collisions or to consider files written by the
      current host to be owned by a different one at a later time.
      
      rdar://problem/21512307
      
      llvm-svn: 241005
      c349cf39
    • Rui Ueyama's avatar
      Silence MSVC "not all control paths return a value" warning. · 81dd16a1
      Rui Ueyama authored
      llvm-svn: 241004
      81dd16a1
    • Tim Northover's avatar
      ARM: add correct kill flags when combining stm instructions · 83f0fbcc
      Tim Northover authored
      When the store sequence being combined actually stores the base register, we
      should not mark it as killed until the end.
      
      rdar://21504262
      
      llvm-svn: 241003
      83f0fbcc
    • Matthias Braun's avatar
      X86: Rework inline asm integer register specification. · abf88a03
      Matthias Braun authored
      This is a new version of http://reviews.llvm.org/D10260.
      
      It turned out that when you specify an integer register in inline asm on
      x86 you get the register of the required type size back. That means that
      X86TargetLowering::getRegForInlineAsmConstraint() has to accept any of
      the integer registers and adapt its size to the given target size which
      may be any 8/16/32/64 bit sized type. Surprisingly that means given a
      constraint of "{ax}" and a type of MVT::F32 we need to return X86::EAX.
      
      This change makes this face explicit, the previous code seemed like
      working by accident because there it never returned an error once a
      register was found. On the other hand this rewrite allows to actually
      return errors for invalid situations like requesting an integer register
      for an i128 type.
      
      Related to rdar://21042280
      
      Differential Revision: http://reviews.llvm.org/D10813
      
      llvm-svn: 241002
      abf88a03
    • Chandler Carruth's avatar
      [opt] Devirtualize the SymbolBody type hierarchy and start compacting · 64c17c7d
      Chandler Carruth authored
      its members into the base class.
      
      First, to help motivate this kind of change, understand that in
      a self-link, LLD creates 5.5 million defined regular symbol bodies (and
      6 million symbol bodies total). A significant portion of its time is
      spent allocating the memory for these symbols, and befor ethis patch
      the defined regular symbol body objects alone consumed some 420mb of
      memory during the self link.
      
      As a consequence, I think it is worth expending considerable effort to
      make these objects as memory efficient as possible. This is the first of
      several components of that. This change starts with the goal of removing
      the virtual functins from SymbolBody so that it can avoid having a vptr
      embedded in it when it already contains a "kind" member, and that member
      can be much more compact than a vptr.
      
      The primary way of doing this is to sink as much of the logic that we
      would have to dispatch for into data in the base class. As part of this,
      I made the various flags bits that will pack into a bitfield with the
      kind tag. I also sank the Name down to eliminate the dispatch for that,
      and used LLVM's RTTI-style dispatch for everything else (most of which
      is cold and so doesn't matter terribly if we get minutely worse lowering
      than a vtable dispatch).
      
      As I was doing this, I wanted to make the RTTI-dispatch (which would
      become much hotter than before) as efficient as possible, so I've
      re-organized the tags somewhat. Notably, the common case (regular
      defined symbols) is now zero which we can test for faster.
      
      I also needed to rewrite the comparison routine used during resolving
      symbols. This proved to be quite complex as the semantics of the
      existing one were very subtle due to the back-and-forth virtual dispatch
      caused by re-dispatching with reversed operands. I've consolidated it to
      a single function and tried to comment it quite a bit more to help
      explain what is going on. However, this may need more comments or other
      explanations. It at least passes all the regression tests. I'm not
      working on Windows, so I can't fully test it.
      
      With all of these changes, the size of a DefinedRegular symbol on
      a 64-bit build goes from 80 bytes to 64 bytes, and we save approximately
      84mb or 20% of the memory consumed by these symbol bodies during the
      link.
      
      The link time appears marginally faster as well, and the profile hotness
      of the memory allocation subsystem got a bit better, but there is still
      a lot of allocation traffic.
      
      Differential Revision: http://reviews.llvm.org/D10792
      
      llvm-svn: 241001
      64c17c7d
    • Chandler Carruth's avatar
      [cleanup] Clean up the flow of creating a symbol body for regular symbols. · ee5bf526
      Chandler Carruth authored
      This uses a single cast and test to get the section for the symbol, and
      uses the cast_or_null<> pattern throughout to handle the known type but
      unknown non-null-ness.
      
      No functionality changed.
      
      Differential Revision: http://reviews.llvm.org/D10791
      
      llvm-svn: 241000
      ee5bf526
    • Alexey Samsonov's avatar
      [LoopSimplify] Set proper debug location in loop backedge blocks. · b7724b95
      Alexey Samsonov authored
      Set debug location for terminator instruction in loop backedge block
      (which is an unconditional jump to loop header). We can't copy debug
      location from original backedges, as there can be several of them,
      with different debug info locations. So, we follow the approach of
      SplitBlockPredecessors, and copy the debug info from first non-PHI
      instruction in the header (i.e. destination block).
      
      This is yet another change for PR23837.
      
      llvm-svn: 240999
      b7724b95
    • Sanjoy Das's avatar
      [FaultMaps] Fix test case. · 1a66ff70
      Sanjoy Das authored
      implicit-null-check-negative.ll had a missing 2>&1.  Fix this, and
      remove an incorrect test case that this exposes.
      
      llvm-svn: 240998
      1a66ff70
    • Rafael Espindola's avatar
      Update for llvm api change. · bff864a5
      Rafael Espindola authored
      llvm-svn: 240997
      bff864a5
    • Rafael Espindola's avatar
      Convert obj->getSymbolName to sym->getName. · 44c2871c
      Rafael Espindola authored
      I doesn't depend on the object anymore.
      
      llvm-svn: 240996
      44c2871c
    • Chandler Carruth's avatar
      [opt] Replace the recursive walk for GC with a worklist algorithm. · 59013c38
      Chandler Carruth authored
      This flattens the entire liveness walk from a recursive mark approach to
      a worklist approach. It also sinks the worklist management completely
      out of the SectionChunk and into the Writer by exposing the ability to
      iterato over children of a chunk and over the symbol bodies of relocated
      symbols. I'm not 100% happy with the API names, so suggestions welcome
      there.
      
      This allows us to use a single worklist for the entire recursive walk
      and would also be a natural place to take advantage of parallelism at
      some future point.
      
      With this, we completely inline away the GC walk into the
      Writer::markLive function and it makes it very easy to profile what is
      slow. Currently, time is being wasted checking whether a Chunk isa
      SectionChunk (it essentially always is), finding (or skipping)
      a replacement for a symbol, and chasing pointers between symbols and
      their chunks. There are a bunch of things we can do to fix this, and its
      easier to do them after this change IMO.
      
      This change alone saves 1-2% of the time for my self-link of lld.exe
      (which I'm running and benchmarking on Linux ironically).
      
      Perhaps more notably, we'll no longer blow out the stack for large
      links. =]
      
      Just as an FYI, at this point, I/O is starting to really dominate the
      profile. Well over 10% of the time appears to be inside the kernel doing
      page table silliness. I think a decent chunk of this can be nuked as
      well, but it's a little odd as cross-linking in this way isn't really
      the primary goal here.
      
      Differential Revision: http://reviews.llvm.org/D10790
      
      llvm-svn: 240995
      59013c38
    • Eric Christopher's avatar
      Add support for the x86 builtin __builtin_cpu_supports. · d9832709
      Eric Christopher authored
      This matches the implementation of the gcc support for the same
      feature, including checking the values set up by libgcc at runtime.
      The structure looks like this:
      
        unsigned int __cpu_vendor;
        unsigned int __cpu_type;
        unsigned int __cpu_subtype;
        unsigned int __cpu_features[1];
      
      with a set of enums to match various fields that are field out after
      parsing the output of the cpuid instruction.
      This also adds a set of errors checking for valid input (and cpu).
      
      compiler-rt support for this and the other builtins in this family
      (__builtin_cpu_init and __builtin_cpu_is) are forthcoming.
      
      llvm-svn: 240994
      d9832709
    • Greg Clayton's avatar
      Make sure that SharingPtr.h appears in the LLDB.framework by making it a... · 63cacd7b
      Greg Clayton authored
      Make sure that SharingPtr.h appears in the LLDB.framework by making it a public header in the LLDB framework target.
      
      This fixes test issues with building lldb/test/api/multithreaded and a few other tests that build against the LLDB.framework in our build directory.
      
      llvm-svn: 240993
      63cacd7b
    • Evgeniy Stepanov's avatar
      [asan] Fix SanitizerCommon.PthreadDestructorIterations test on Android L. · 856b1119
      Evgeniy Stepanov authored
      On Android L, TSD destructors run 8 times instead of 4.
      Back to 4 times on the current master branch (as well as on K).
      
      llvm-svn: 240992
      856b1119
    • Pawel Bylica's avatar
      [DAGCombiner] Fix & simplify constant folding of sext/zext. · 143ceb6d
      Pawel Bylica authored
      Summary: This patch fixes the cases of sext/zext constant folding in DAG combiner where constans do not fit 64 bits. The fix simply removes un$
      
      Test Plan: New regression test included.
      
      Reviewers: RKSimon
      
      Reviewed By: RKSimon
      
      Subscribers: RKSimon, llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D10607
      
      llvm-svn: 240991
      143ceb6d
    • Benjamin Kramer's avatar
      [MMI] Use TinyPtrVector instead of PointerUnion with vector. · 6fe4e793
      Benjamin Kramer authored
      Also simplify duplicated code a bit. No functionality change intended.
      
      llvm-svn: 240990
      6fe4e793
    • David Majnemer's avatar
      [CodeGen] Remove atomic sugar from record types in isSafeToConvert · 5682efd2
      David Majnemer authored
      We failed to see that we should have deferred the creation of a type
      which references a type currently under construction because of atomic
      sugar.
      
      This fixes PR23985.
      
      llvm-svn: 240989
      5682efd2
    • Greg Clayton's avatar
      More packet reduction when debugging with GDB server. · 2e59d4ff
      Greg Clayton authored
      - Avoid sending the qfThreadInfo, qsThreadInfo packets if we have a stop reply packet with the threads already (save 2 round trip packets)
      - Include the qname, qserial and qkind in the JSON info
      - Report the qname, qserial and qkind to the thread so it can cache it to avoid many packets on MacOSX and iOS
      - Don't clear all discoverable settings when we exec, just the ones we need to saves 1-5 packets for each exec.
      
      llvm-svn: 240988
      2e59d4ff
    • Diego Novillo's avatar
      Tidy comment. · b0257c84
      Diego Novillo authored
      llvm-svn: 240987
      b0257c84
    • Michael Kruse's avatar
      [Polly] Add -std=c99 flag only to C source files · acc9ad59
      Michael Kruse authored
      Summary: Adding the flag to C++ source files emits a warning, hence we set the compile flag depending on the file's language.
      
      Reviewers: grosser
      
      Subscribers: Meinersbur, pollydev, llvm-commits
      
      Projects: #polly
      
      Differential Revision: http://reviews.llvm.org/D10809
      
      llvm-svn: 240986
      acc9ad59
    • Jonathan Peyton's avatar
      Remove _KMP_BUILD_TIME macro from kmp_version.c · 6e19ed89
      Jonathan Peyton authored
      At the suggestion of Chandler Carruth, I've removed the timestamp macro,
      _KMP_BUILD_TIME, that cmake currently sets to "No_Timestamp" and replaced it with standard
      __DATE__ and __TIME__ macros inside kmp_version.c.
      
      llvm-svn: 240985
      6e19ed89
    • Douglas Katzman's avatar
      More range-based for loops. NFC · 2675d01d
      Douglas Katzman authored
      llvm-svn: 240984
      2675d01d
    • Chaoren Lin's avatar
      Rewrite FileSpec::EnumerateDirectory to avoid code duplication. · 0246b6ff
      Chaoren Lin authored
      Reviewers: clayborg
      
      Reviewed By: clayborg
      
      Subscribers: lldb-commits
      
      Differential Revision: http://reviews.llvm.org/D10811
      
      llvm-svn: 240983
      0246b6ff
    • Chandler Carruth's avatar
      [opt] Hoist the call throuh SymbolBody::getReplacement out of the inline · be6e80b0
      Chandler Carruth authored
      method to get a SymbolBody and into the callers, and kill now dead
      includes.
      
      This removes the need to have the SymbolBody definition when we're
      defining the inline method and makes it a better inline method. That was
      the only reason for a lot of header includes here. Removing these and
      using forward declarations actually uncovers a bunch of cross-header
      dependencies that I've fixed while I'm here, and will allow me to
      introduce some *important* inline code into Chunks.h that requires the
      definition of ObjectFile.
      
      No functionality changed at this point.
      
      Differential Revision: http://reviews.llvm.org/D10789
      
      llvm-svn: 240982
      be6e80b0
Loading