Skip to content
  1. Jan 17, 2015
    • Chandler Carruth's avatar
      [PM] Cleanup more warnings my refactoring exposed where now we have · bc045a5a
      Chandler Carruth authored
      unused variables in a no-asserts build.
      
      I've fixed this by putting the entire loop behind an #ifndef as it
      contains nothing other than asserts.
      
      llvm-svn: 226377
      bc045a5a
    • Chandler Carruth's avatar
      [PM] Remove a dead field. · 24fd029a
      Chandler Carruth authored
      This was dead even before I refactored how we initialized it, but my
      refactoring made it trivially dead and it is now caught by a Clang
      warning. This fixes the warning and should clean up the -Werror bot
      failures (sorry!).
      
      llvm-svn: 226376
      24fd029a
    • Chandler Carruth's avatar
      [PM] Split the LoopInfo object apart from the legacy pass, creating · 4f8f307c
      Chandler Carruth authored
      a LoopInfoWrapperPass to wire the object up to the legacy pass manager.
      
      This switches all the clients of LoopInfo over and paves the way to port
      LoopInfo to the new pass manager. No functionality change is intended
      with this iteration.
      
      llvm-svn: 226373
      4f8f307c
    • Hal Finkel's avatar
      [PowerPC] Don't list R11 as a patchpoint scratch register · c19805a7
      Hal Finkel authored
      R11's status is the same under both the PPC64 ELF V1 and V2 ABIs: it is
      reserved for use as an "environment pointer" for compilation models that
      require such a thing. We don't, we also don't need a second scratch register,
      and because we support only "local" patchpoint call targets, we might as well
      let R11 be used for anyregcc patchpoints.
      
      llvm-svn: 226369
      c19805a7
    • Hans Wennborg's avatar
      ProgrammersManual.rst: fix a typo · 8888d5b3
      Hans Wennborg authored
      llvm-svn: 226367
      8888d5b3
    • Mehdi Amini's avatar
      Improve DAG combine pass on certain IR vector patterns · 37f316af
      Mehdi Amini authored
      Loading 2 2x32-bit float vectors into the bottom half of a 256-bit vector
      produced suboptimal code in AVX2 mode with certain IR combinations.
      
      In particular, the IR optimizer folded 2f32 + 2f32 -> 4f32, 4f32 + 4f32
      (undef) -> 8f32 into a 2f32 + 2f32 -> 8f32, which seems more canonical,
      but then mysteriously generated rather bad code; the movq/movhpd combination
      didn't match.
      
      The problem lay in the BUILD_VECTOR optimization path. The 2f32 inputs
      would get promoted to 4f32 by the type legalizer, eventually resulting
      in a BUILD_VECTOR on two 4f32 into an 8f32. The BUILD_VECTOR then, recognizing
      these were both half the output size, concatted them and then produced
      a shuffle. However, the resulting concat + shuffle was more complex than
      it should be; in the case where the upper half of the output is undef, we
      probably want to generate shuffle + concat instead.
      
      This enhancement causes the vector_shuffle combine step to recognize this
      suboptimal pattern and correct it. I included it there instead of in BUILD_VECTOR
      in case the same suboptimal pattern occurs for other reasons.
      
      This results in the optimizer correctly producing the optimal movq + movhpd
      sequence for all three variations on this IR, even with AVX2.
      
      I've included a test case.
      
      Radar link: rdar://problem/19287012
      Fix for PR 21943.
      
      From: Fiona Glaser <fglaser@apple.com>
      llvm-svn: 226360
      37f316af
    • Lang Hames's avatar
      [RuntimeDyld] Tidy up emitCommonSymbols a little. NFC. · 2996895f
      Lang Hames authored
      llvm-svn: 226358
      2996895f
    • Richard Trieu's avatar
      Remove std::move that was preventing return value optimization. · 73d06526
      Richard Trieu authored
      llvm-svn: 226356
      73d06526
    • Matthias Braun's avatar
      7618b2b2
    • Matthias Braun's avatar
      RegisterCoalescer: Cleanup by factoring out a common expression · 0eb940ae
      Matthias Braun authored
      llvm-svn: 226352
      0eb940ae
    • Matthias Braun's avatar
      RegisterCoalescer: Cleanup comment style · e2fa0816
      Matthias Braun authored
      - Consistenly put comments above the function declaration, not the
        definition. To achieve this some duplicate comments got merged and
        some comment parts describing implementation details got moved into their
        functions.
      - Consistently use doxygen comments above functions.
      - Do not use doxygen comments inside functions.
      
      llvm-svn: 226351
      e2fa0816
    • Matthias Braun's avatar
      RegisterCoalescer: Drive-by typo + whitespace fix · fc6ef3a2
      Matthias Braun authored
      llvm-svn: 226350
      fc6ef3a2
    • Lang Hames's avatar
      [RuntimeDyld] Remove the brace initialization that was introduced in r226341. · 1f7eab33
      Lang Hames authored
      Evidently MSVC doesn't like it.
      
      llvm-svn: 226349
      1f7eab33
    • Kevin Enderby's avatar
      Change the test case for llvm-objdump’s -archive-headers option to not check the size · 51f5cb14
      Kevin Enderby authored
      while I once again try to figure out why only the clang-cmake-armv7-a15-full bot
      is getting that value wrong.
      
      llvm-svn: 226345
      51f5cb14
    • Philip Reames's avatar
      Update a comment · 287987ca
      Philip Reames authored
      Be a bit more explicit about the fact that addrspace(1) is not reserved.
      
      llvm-svn: 226344
      287987ca
    • Philip Reames's avatar
      clang-format all the GC related files (NFC) · 36319538
      Philip Reames authored
      Nothing interesting here...
      
      llvm-svn: 226342
      36319538
    • Lang Hames's avatar
      [RuntimeDyld] Track symbol visibility in RuntimeDyld. · 6bfd3980
      Lang Hames authored
      RuntimeDyld symbol info previously consisted of just a Section/Offset pair. This
      patch replaces that pair type with a SymbolInfo class that also tracks symbol
      visibility. A new method, RuntimeDyld::getExportedSymbolLoadAddress, is
      introduced which only returns a non-zero result for exported symbols. For
      non-exported or non-existant symbols this method will return zero. The
      RuntimeDyld::getSymbolAddress method retains its current behavior, returning
      non-zero results for all symbols regardless of visibility.
      
      No in-tree clients of RuntimeDyld are changed. The newly introduced
      functionality will be used by the Orc APIs.
      
      No test case: Since this patch doesn't modify the behavior for any in-tree
      clients we don't have a good tool to test this with yet. Once Orc is in we can
      use it to write regression tests that test these changes.
      
      llvm-svn: 226341
      6bfd3980
  2. Jan 16, 2015
Loading