Skip to content
  1. Sep 14, 2013
  2. Sep 13, 2013
    • Rui Ueyama's avatar
      Revert "[PECOFF] Allocate storage for .drective in the reader ..." · ec9bb694
      Rui Ueyama authored
      This reverts r189881 because that patch caused dangling StringRefs.
      
      llvm-svn: 190725
      ec9bb694
    • Rui Ueyama's avatar
      [PECOFF] Fix alignment bug. · a8ce9529
      Rui Ueyama authored
      There was a bug that if a section has an alignment requirement and there are
      multiple symbols at offset 0 in the section, only the last atom at offset 0
      would be aligned properly. That bug would move only the last symbol to an
      alignment boundary, leaving other symbols unaligned, although they should be at
      the same location. That caused a mysterious SEGV error of the resultant
      executable.
      
      With this patch, we manage all symbols at the same location properly, rather
      than keeping the last one.
      
      llvm-svn: 190724
      a8ce9529
    • Rui Ueyama's avatar
      [PECOFF] Fix atom default alignment. · 1ea9b977
      Rui Ueyama authored
      Alignment(1) does not mean that the atom should be aligned on a 1 byte
      boundary but on a 2^1 boundary. So, atoms without any specific alignment
      requirements should have Alignment(0).
      
      llvm-svn: 190723
      1ea9b977
    • Richard Smith's avatar
      Part three of PR15721: if we have an invalid CXXDefaultInitExpr, don't crash if · 17e32460
      Richard Smith authored
      we try to constant-evaluate it. Patch by Karthik Bhat, test by me.
      
      llvm-svn: 190722
      17e32460
    • Aaron Ballman's avatar
      vector_size cannot be applied to Booleans. Updated the semantic checking... · 8c9795d9
      Aaron Ballman authored
      vector_size cannot be applied to Booleans.  Updated the semantic checking logic, as well as the comment and added a test case.  Fixes PR12649
      
      llvm-svn: 190721
      8c9795d9
    • Hal Finkel's avatar
      Add missing break statement in PPCISelLowering · c3cfbf86
      Hal Finkel authored
      As it turns out, not a problem in practice, but it should be there.
      
      llvm-svn: 190720
      c3cfbf86
    • Aaron Ballman's avatar
    • Preston Gurd's avatar
      Update Atom Silvermont (SLM) support by adding enabled features. · a3c58c02
      Preston Gurd authored
      llvm-svn: 190718
      a3c58c02
    • Preston Gurd's avatar
      Adds support for Atom Silvermont (SLM) - -march=slm · 3fe264d6
      Preston Gurd authored
      Implements Instruction scheduler latencies for Silvermont,
      using latencies from the Intel Silvermont Optimization Guide.
      
      Auto detects SLM.
      
      Turns on post RA scheduler when generating code for SLM.
      
      llvm-svn: 190717
      3fe264d6
    • David Blaikie's avatar
      DebugInfo: omit debug info for friends · dedd27fc
      David Blaikie authored
      GCC ToT doesn't do this & it's worth about 3.2% on Clang's DWO file size
      with Clang. Some or all of this may be due to things like r190715 which
      could have source fixes/improvements, but it's not clear that's the case
      and that doesn't help other source bases.
      
      llvm-svn: 190716
      dedd27fc
    • David Blaikie's avatar
      Remove unnecessary inclusion of Sema.h · 0a4e61f8
      David Blaikie authored
      Let me tell you a tale...
      
      Within some twisted maze of debug info I've ended up implementing an
      insane man's Include What You Use device. When the debugger emits debug
      info it really shouldn't, I find out why & then realize the code could
      be improved too.
      
      In this instance CIndexDiagnostics.cpp had a lot more debug info with
      Clang than GCC. Upon inspection a major culprit was all the debug info
      describing clang::Sema. This was emitted because clang::Sema is
      befriended by DiagnosticEngine which was rightly required, but GCC
      doesn't emit debug info for friends so it never emitted anything for
      Clang. Clang does emit debug info for friends (will be fixed/changed to
      reduce debug info size).
      
      But why didn't Clang just emit a declaration of Sema if this entire TU
      didn't require a definition?
      
      1) Diagnostic.h did the right thing, only using a declaration of Sema
      and not including Sema.h at all.
      2) Some other dependency of CIndexDiagnostics.cpp didn't do the right
      thing. ASTUnit.h, only needing a declaration, still included Sema.h
      (hence this commit which removes that include and adds the necessary
      includes to the cpp files that were relying on this)
      3) -flimit-debug-info didn't save us because of
      EnterExpressionEvaluationContext, defined inline in Sema.h which fires
      the "requiresCompleteType" check/flag (since it uses nested types from
      Sema and calls Sema member functions) and thus, if debug info is ever
      emitted for the type, the whole type is emitted and not just a
      declaration.
      
      Improving -flimit-debug-info to account for this would be... hard.
      Modifying the code so that's not 'required to be complete' might be
      possible, but probably only by moving EnterExpressionEvaluationContext
      either into Sema, or out of Sema.h. That might be a bit too much of a
      contortion to be bothered with.
      
      Also, this is only one of the cases where emitting debug info for
      friends caused us to emit a lot more debug info (this change reduces
      Clang's DWO size by 0.93%, dropping friends entirely reduces debug info
      by 3.2%) - I haven't hunted down the other cases, but I assume they
      might be similar (Sema or something like it). IWYU or a similar tool
      might help us reduce build times a bit, but analyzing debug info to find
      these differences isn't worthwhile. I'll take the 3.2% win, provide this
      small improvement to the code itself, and move on.
      
      llvm-svn: 190715
      0a4e61f8
    • Joerg Sonnenberger's avatar
      Add test case for the not-yet implemented copy relocations. · 3c6b0561
      Joerg Sonnenberger authored
      llvm-svn: 190714
      3c6b0561
    • Quentin Colombet's avatar
      [Peephole] Rewrite copies to avoid cross register banks copies. · cf71c632
      Quentin Colombet authored
      By definition copies across register banks are not coalescable. Still, it may be
      possible to get rid of such a copy when the value is available in another
      register of the same register file.
      Consider the following example, where capital and lower letters denote different
      register file:
      b = copy A <-- cross-bank copy
      ...
      C = copy b <-- cross-bank copy
      
      This could have been optimized this way:
      b = copy A  <-- cross-bank copy
      ...
      C = copy A <-- same-bank copy
      
      Note: b and C's definitions may be in different basic blocks.
      
      This patch adds a peephole optimization that looks through a chain of copies
      leading to a cross-bank copy and reuses a source that is on the same register
      file if available.
      
      This solution could also be used to get rid of some copies (e.g., A could have
      been used instead of C). However, we do not do so because:
      - It may over constrain the coloring of the source register for coalescing.
      - The register allocator may not be able to find a nice split point for the
        longer live-range, leading to more spill.
      
      <rdar://problem/14742333>
      
      llvm-svn: 190713
      cf71c632
    • David Blaikie's avatar
      Fix indentation of closing }; · 5cc6cc13
      David Blaikie authored
      llvm-svn: 190711
      5cc6cc13
    • Aaron Ballman's avatar
    • Ed Maste's avatar
      Skip tests that segfault or are inconsistent on FreeBSD · 3dfe99ca
      Ed Maste authored
      I now see no unexpected failures on FreeBSD on a local run of the test
      suite.
      
      llvm.org/pr17214
      llvm.org/pr17225
      llvm.org/pr17231
      llvm.org/pr17232
      llvm.org/pr17233
      
      llvm-svn: 190709
      3dfe99ca
    • Benjamin Kramer's avatar
      Add warn_unused_result to empty() on various containers. · e35e7c98
      Benjamin Kramer authored
      empty() doesn't actually empty out the container, making this a common typo.
      
      llvm-svn: 190708
      e35e7c98
    • Marshall Clow's avatar
      Fix link to dynarray issue · 9a08837b
      Marshall Clow authored
      llvm-svn: 190707
      9a08837b
    • Benjamin Kramer's avatar
    • NAKAMURA Takumi's avatar
      5c81ca46
    • Renato Golin's avatar
      Moving Cortex-R cores to armv7r arch · 6031230e
      Renato Golin authored
      llvm-svn: 190704
      6031230e
Loading