Skip to content
  1. Sep 04, 2016
    • Joerg Sonnenberger's avatar
      PR 27200: Fix names of the atomic lock-free macros. · 82216f0f
      Joerg Sonnenberger authored
      llvm-svn: 280607
      82216f0f
    • Todd Fiala's avatar
      XFAIL TestGdbRemoteExitCode failing tests · b1a503bd
      Todd Fiala authored
      Tracked by:
      llvm.org/pr30271
      
      llvm-svn: 280606
      b1a503bd
    • Marshall Clow's avatar
      Mark test as XFAIL for C++03, rather than providing a dummy pass. · 2a837eae
      Marshall Clow authored
      llvm-svn: 280605
      2a837eae
    • Todd Fiala's avatar
      [NFC] Darwin llgs support from Week of Code · e77fce0a
      Todd Fiala authored
      This code represents the Week of Code work I did on bringing up
      lldb-server LLGS support for Darwin.  It does not include the
      Xcode project changes needed, as we don't want to throw that switch
      until more support is implemented (i.e. this change is inert, no
      build systems use it yet.  I've verified on Ubuntu 16.04, macOS
      Xcode and macOS cmake builds).
      
      This change does some minimal refactoring of code that is shared
      with the Linux LLGS portion, moving it from NativeProcessLinux into
      NativeProcessProtocol.  That code is also used by NativeProcessDarwin.
      
      Current state on Darwin:
      * Process launching is implemented.  (Attach is not).
        Launching on devices has not yet been tested (FBS/BKS might
        need a bit of work).
      * Inferior waitpid monitoring and communication of exit status
        via MainLoop callback is implemented.
      * Memory read/write, breakpoints, thread register context, etc.
        are not yet implemented.  This impacts process stop/resume, as
        the initial launch suspended immediately starts the process
        up and running because it doesn't know it is supposed to remain
        stopped.
      * I implemented the equivalent of MachThreadList as
        NativeThreadListDarwin, in anticipation that we might want to
        factor out common parts into NativeThreadList{Protocol} and share
        some code here.  After writing it, though, the fallout from merging
        Mach Task/Process into a single concept plus some other minor
        changes makes the whole NativeThreadListDarwin concept nothing more
        than dead weight.  I am likely going to get rid of this class and
        just manage it directly in NativeProcessDarwin, much like I did
        for NativeProcessLinux.
      * There is a stub-out call for starting a STDIO thread.  That will
        go away and adopt the MainLoop pselect-based IOObject reading.
      
      I am developing the fully-integrated changes in the following repo,
      which contains the necessary Xcode bits and the glue that enables
      lldb-debugserver on a macOS system:
      
        https://github.com/tfiala/lldb/tree/llgs-darwin
      
      This change also breaks out a few of the lldb-server tests into
      their own directory, and adds some $qHostInfo tests (not sure why
      I didn't write those tests back when I initially implemented that
      on the Linux side).
      
      llvm-svn: 280604
      e77fce0a
    • Craig Topper's avatar
      [X86] Combine some of the strings in autoupgrade code. · a57d2ca4
      Craig Topper authored
      llvm-svn: 280603
      a57d2ca4
    • Xinliang David Li's avatar
      Cleanup : Use metadata preserving API for branch creation · 7a28a7fb
      Xinliang David Li authored
      Use the wrapper API in IRBuilder that does meta data copy
      to create new branch in LoopUnswitch.
      
      llvm-svn: 280602
      7a28a7fb
  2. Sep 03, 2016
    • Tobias Grosser's avatar
      ScopInfo: Do not derive assumptions from all GEP pointer instructions · 8d4cb1a0
      Tobias Grosser authored
      ... but instead rely on the assumptions that we derive for load/store
      instructions.
      
      Before we were able to delinearize arrays, we used GEP pointer instructions
      to derive information about the likely range of induction variables, which
      gave us more freedom during loop scheduling. Today, this is not needed
      any more as we delinearize multi-dimensional memory accesses and as part
      of this process also "assume" that all accesses to these arrays remain
      inbounds. The old derive-assumptions-from-GEP code has consequently become
      mostly redundant. We drop it both to clean up our code, but also to improve
      compile time. This change reduces the scop construction time for 3mm in
      no-asserts mode on my machine from 48 to 37 ms.
      
      llvm-svn: 280601
      8d4cb1a0
    • Xinliang David Li's avatar
      [Profile] preserve branch metadata lowering select in CGP · 241e6c70
      Xinliang David Li authored
      CGP currently drops select's MD_prof profile data when
      generating conditional branch which can lead to bad
      code layout. The patch fixes the issue.
      
      Differential Revision: http://reviews.llvm.org/D24169
      
      llvm-svn: 280600
      241e6c70
    • Mehdi Amini's avatar
      Fix ThinLTO crash with debug info · ebb34348
      Mehdi Amini authored
      Because the recent change about ODR type uniquing in the context,
      we can reach types defined in another module during IR linking.
      This triggered some assertions in case we IR link without starting
      from an empty module. To alleviate that, we can self-map metadata
      defined in the destination module so that they won't be visited.
      
      Differential Revision: https://reviews.llvm.org/D23841
      
      llvm-svn: 280599
      ebb34348
    • Simon Pilgrim's avatar
      Strip trailing whitespace · 3606d234
      Simon Pilgrim authored
      llvm-svn: 280598
      3606d234
    • Craig Topper's avatar
      f43e4a17
    • Craig Topper's avatar
      0e18976b
    • Matt Arsenault's avatar
      AMDGPU: Set sizes of spill pseudos · ac42ba86
      Matt Arsenault authored
      llvm-svn: 280595
      ac42ba86
    • Matt Arsenault's avatar
      AMDGPU: Fix adding duplicate implicit exec uses · 5ffe3e1d
      Matt Arsenault authored
      I'm not sure if this should be considered a bug in
      copyImplicitOps or not, but implicit operands that are part
      of the static instruction definition should not be copied.
      
      llvm-svn: 280594
      5ffe3e1d
    • Craig Topper's avatar
      [AVX-512] Add integer ADD/SUB instructions to load folding tables. Add an... · 907b580d
      Craig Topper authored
      [AVX-512] Add integer ADD/SUB instructions to load folding tables. Add an AVX512 stack folding test.
      
      llvm-svn: 280593
      907b580d
    • Craig Topper's avatar
    • Aaron Ballman's avatar
      Fix the attribute documentation build. · bb18e91c
      Aaron Ballman authored
      llvm-svn: 280591
      bb18e91c
    • Nicolai Haehnle's avatar
      AMDGPU: Reduce the duration of whole-quad-mode · 3bba6a84
      Nicolai Haehnle authored
      Summary:
      This contains two changes that reduce the time spent in WQM, with the
      intention of reducing bandwidth required by VMEM loads:
      
      1. Sampling instructions by themselves don't need to run in WQM, only their
         coordinate inputs need it (unless of course there is a dependent sampling
         instruction). The initial scanInstructions step is modified accordingly.
      
      2. When switching back from WQM to Exact, switch back as soon as possible.
         This affects the logic in processBlock.
      
      This should always be a win or at best neutral.
      
      There are also some cleanups (e.g. remove unused ExecExports) and some new
      debugging output.
      
      Reviewers: arsenm, tstellarAMD, mareko
      
      Subscribers: arsenm, llvm-commits, kzhuravl
      
      Differential Revision: http://reviews.llvm.org/D22092
      
      llvm-svn: 280590
      3bba6a84
    • Nicolai Haehnle's avatar
      AMDGPU: Fix an interaction between WQM and polygon stippling · a246dccc
      Nicolai Haehnle authored
      Summary:
      This fixes a rare bug in polygon stippling with non-monolithic pixel shaders.
      
      The underlying problem is as follows: the prolog part contains the polygon
      stippling sequence, i.e. a kill. The main part then enables WQM based on the
      _reduced_ exec mask, effectively undoing most of the polygon stippling.
      
      Since we cannot know whether polygon stippling will be used, the main part
      of a non-monolithic shader must always return to exact mode to fix this
      problem.
      
      Reviewers: arsenm, tstellarAMD, mareko
      
      Subscribers: arsenm, llvm-commits, kzhuravl
      
      Differential Revision: https://reviews.llvm.org/D23131
      
      llvm-svn: 280589
      a246dccc
    • Eric Fiselier's avatar
      Fix PR30202 - notify_all_at_thread_exit seg faults if run from a raw pthread context. · ff94d250
      Eric Fiselier authored
      Summary:
      This patch allows threads not created using `std::thread` to use `std::notify_all_at_thread_exit` by ensuring the TL state has been initialized within `std::notify_all_at_thread_exit`.
      
      Additionally this patch "fixes" a potential oddity in `__thread_local_pointer::reset(pointer)`, which would previously delete the old thread local data. However there should *never* be old thread local data because pthread *should* null it out on thread exit. Unfortunately it's possible that pthread failed to do this according to the spec:
      
      
      > 
      > Upon key creation, the value NULL shall be associated with the new key in all active threads. Upon thread creation, the value NULL shall be associated with all defined keys in the new thread.
      > 
      > An optional destructor function may be associated with each key value. At thread exit, if a key value has a non-NULL destructor pointer, and the thread has a non-NULL value associated with that key, the value of the key is set to NULL, and then the function pointed to is called with the previously associated value as its sole argument. The order of destructor calls is unspecified if more than one destructor exists for a thread when it exits.
      > 
      > If, after all the destructors have been called for all non-NULL values with associated destructors, there are still some non-NULL values with associated destructors, then the process is repeated. If, after at least {PTHREAD_DESTRUCTOR_ITERATIONS} iterations of destructor calls for outstanding non-NULL values, there are still some non-NULL values with associated destructors, implementations may stop calling destructors, or they may continue calling destructors until no non-NULL values with associated destructors exist, even though this might result in an infinite loop.
      
      However if pthread fails to delete the value it is probably incorrect for us to do it. Destroying the value performs all of the "at thread exit" actions registered with it but we are way past "at thread exit".
      
      
      
      
      
      Reviewers: mclow.lists, bcraig, EricWF
      
      Subscribers: cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D24159
      
      llvm-svn: 280588
      ff94d250
    • Niels Ole Salscheider's avatar
      Replace the Radeon GCN GPU family names by more descriptive ones · b28cc458
      Niels Ole Salscheider authored
      Differential Revision: https://reviews.llvm.org/D23957
      
      llvm-svn: 280587
      b28cc458
    • Matt Arsenault's avatar
      AMDGPU: Do basic folding of class intrinsic · 46a0382a
      Matt Arsenault authored
      This allows more of the OCML builtin library to be
      constant folded.
      
      llvm-svn: 280586
      46a0382a
    • Eric Fiselier's avatar
      memory_resource still needs init_priority when built with GCC 4.9 · ebbcfe7b
      Eric Fiselier authored
      llvm-svn: 280585
      ebbcfe7b
    • Matt Arsenault's avatar
      AMDGPU: Fix spilling of m0 · 2510a316
      Matt Arsenault authored
      readlane/writelane do not support using m0 as the output/input.
      Constrain the register class of spill vregs to try to avoid this,
      but also handle spilling of the physreg when necessary by inserting
      an additional copy to a normal SGPR.
      
      llvm-svn: 280584
      2510a316
    • Matt Arsenault's avatar
      Improve debug error message with register name · f3d1a1a1
      Matt Arsenault authored
      llvm-svn: 280583
      f3d1a1a1
    • Craig Topper's avatar
      892ce569
    • Nico Weber's avatar
      Add a test Aaron asked for that I forgot to add before landing r280578. · 55fbe483
      Nico Weber authored
      llvm-svn: 280580
      55fbe483
    • NAKAMURA Takumi's avatar
      Make lit/util.py py3-compatible. · 76dbaebd
      NAKAMURA Takumi authored
      llvm-svn: 280579
      76dbaebd
    • Nico Weber's avatar
      [ms] Add support for parsing uuid as a Microsoft attribute. · 05e1dada
      Nico Weber authored
      Some Windows SDK classes, for example
      Windows::Storage::Streams::IBufferByteAccess, use the ATL way of spelling
      attributes:
      
        [uuid("....")] class IBufferByteAccess {};
      
      To be able to use __uuidof() to grab the uuid off these types, clang needs to
      support uuid as a Microsoft attribute. There was already code to skip Microsoft
      attributes, extend that to look for uuid and parse it.  Use the new "Microsoft"
      attribute type added in r280575 (and r280574, r280576) for this.
      
      Final part of https://reviews.llvm.org/D23895
      
      llvm-svn: 280578
      05e1dada
    • Nico Weber's avatar
      Revert r280549. · 05e78450
      Nico Weber authored
      The test it added doesn't pass:
      http://lab.llvm.org:8011/builders/clang-x64-ninja-win7/builds/15318/steps/ninja%20check%201/logs/FAIL%3A%20LLVM%3A%3Apdbdump-yaml-types.test
      
      Command Output (stdout):
      --
      $ "D:/buildslave/clang-x64-ninja-win7/stage1/./bin\llvm-pdbdump.EXE" "pdb2yaml" "-tpi-stream" "D:\buildslave\clang-x64-ninja-win7\llvm\test\DebugInfo\PDB/Inputs/empty.pdb"
      $ "D:/buildslave/clang-x64-ninja-win7/stage1/./bin\FileCheck.EXE" "-check-prefix=YAML" "D:\buildslave\clang-x64-ninja-win7\llvm\test\DebugInfo\PDB\pdbdump-yaml-types.test"
      # command stderr:
      D:\buildslave\clang-x64-ninja-win7\llvm\test\DebugInfo\PDB\pdbdump-yaml-types.test:36:7: error: expected string not found in input
      YAML: Name: apartment
            ^
      <stdin>:153:10: note: scanning from here
       Value: 161
               ^
      
      llvm-svn: 280577
      05e78450
    • Nico Weber's avatar
      Let Microsoft attributes apply to the type, not the variable. · 32a0fc79
      Nico Weber authored
      There was already a function that moved attributes off the declspec into
      an attribute list for attributes applying to the type, teach that function to
      also move Microsoft attributes around and rename it to match its new broader
      role.
      
      Nothing uses Microsoft attributes yet, so no behavior change.
      
      Part of https://reviews.llvm.org/D23895
      
      llvm-svn: 280576
      32a0fc79
    • Nico Weber's avatar
      Add plumbing for new attribute type "Microsoft". · 20e08048
      Nico Weber authored
      This is for attributes in []-delimited lists preceding a class, like e.g.
      `[uuid("...")] class Foo {};`  Not used by anything yet, so no behavior change.
      Part of https://reviews.llvm.org/D23895
      
      llvm-svn: 280575
      20e08048
    • Nico Weber's avatar
      Move calls of MaybeParseMicrosoftAttributes() before ParseExternalDeclaration() · 8452327f
      Nico Weber authored
      into ParseDeclOrFunctionDefInternal() (which is called by
      MaybeParseMicrosoftAttributes()), so that the attributes can be stored in
      the DeclSpec.  No behavior change yet, part of https://reviews.llvm.org/D23895
      
      llvm-svn: 280574
      8452327f
    • Duncan P. N. Exon Smith's avatar
      ADT: Use std::list in SparseBitVector, NFC · 3c847285
      Duncan P. N. Exon Smith authored
      The only intrusive thing about SparseBitVector's usage of ilist<> was
      that new was usually called externally.  There were no custom traits.
      
      It seems like the reason to switch to ilist in r41855 was to avoid
      pointer invalidation, but std::list<> has that feature too.  Maybe
      std::list<>::emplace makes this a little more obvious than it was then.
      
      Switch over to std::list<> and simplify the code.
      
      llvm-svn: 280573
      3c847285
    • Nico Weber's avatar
      Remove function name from comment. · cb7f722f
      Nico Weber authored
      The comment starting with "ParseDeclarationOrFunctionDefinition -" is above
      a function called ParseDeclOrFunctionDefInternal.  Fix the comment by not
      mentioning a function name, like the style guide requests nowadays.  No behavior
      change.
      
      llvm-svn: 280572
      cb7f722f
    • Hal Finkel's avatar
      [PowerPC] Support asm parsing for bc[l][a][+-] mnemonics · 522e4d9d
      Hal Finkel authored
      PowerPC assembly code in the wild, so it seems, has things like this:
      
        bc+     12, 28, .L9
      
      This is a bit odd because the '+' here becomes part of the BO field, and the BO
      field is otherwise the first operand. Nevertheless, the ISA specification does
      clearly say that the +- hint syntax applies to all conditional-branch mnemonics
      (that test either CTR or a condition register, although not the forms which
      check both), both basic and extended, so this is supposed to be valid.
      
      This introduces some asm-parser-only definitions which take only the upper
      three bits from the specified BO value, and the lower two bits are implied by
      the +- suffix (via some associated aliases).
      
      Fixes PR23646.
      
      llvm-svn: 280571
      522e4d9d
    • Duncan P. N. Exon Smith's avatar
      ADT: Do not inherit from std::iterator in ilist_iterator · 4e229a7c
      Duncan P. N. Exon Smith authored
      Inheriting from std::iterator uses more boiler-plate than manual
      typedefs.  Avoid that in both ilist_iterator and
      MachineInstrBundleIterator.
      
      This has the side effect of removing ilist_iterator from certain ADL
      lookups in namespace std; calls to std::next need to be qualified by
      "std::" that didn't have to before.  The one case of this in-tree was
      operating on a temporary, so I used the more compact operator++.
      
      llvm-svn: 280570
      4e229a7c
    • Duncan P. N. Exon Smith's avatar
      ADT: Split out iplist_impl from iplist, NFC · 3453d51c
      Duncan P. N. Exon Smith authored
      Split out iplist_impl from iplist, and change SymbolTableList to inherit
      directly from iplist_impl.  This makes it more straightforward to add
      new template paramaters to iplist [*]:
      - iplist_impl takes a "base" list that provides the intrusive
        functionality (usually simple_ilist<T>) and a traits class.
      - iplist no longer takes a "Traits" template parameter.  It only takes
        the value_type, T, and instantiates iplist_impl with simple_ilist<T>
        and ilist_traits<T>.
      - SymbolTableList now inherits from iplist_impl, instead of iplist.
      
      Note for out-of-tree code: if you have an iplist whose second template
      parameter was *not* the default (i.e., not ilist_traits<YourT>), you
      have three options:
      - Stop using a custom traits class, and instead specialize
        ilist_traits<YourT>.  This is the usual thing to do.
      - Specialize iplist<YourT> to pass your custom traits class into
        iplist_impl.
      - Create your own trivial list type that passes your custom traits class
        into iplist_impl (see SymbolTableList<> for an example).
      
      [*]: The eventual goal is to start tracking a sentinel bit on the
      MachineInstr list even when LLVM_ENABLE_ABI_BREAKING_CHECKS is off,
      which will enable MachineBasicBlock::reverse_iterator to have normal
      list invalidation semantics that matching the new
      iplist<>::reverse_iterator from r280032.
      
      llvm-svn: 280569
      3453d51c
    • Wei Mi's avatar
      Fix buildbot error. · c37307a5
      Wei Mi authored
      Add -mtriple=x86_64-unknown-linux-gnu for the test and move it to CodeGen/X86.
      
      llvm-svn: 280568
      c37307a5
    • Duncan P. N. Exon Smith's avatar
      ADT: Rename NodeTy to T in iplist/ilist template parameters · 7b1fec03
      Duncan P. N. Exon Smith authored
      And use other typedefs so that the next rename has a smaller diff.
      
      llvm-svn: 280567
      7b1fec03
Loading