Skip to content
  1. Jan 17, 2015
    • 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