Skip to content
  1. Jan 19, 2015
  2. Jan 18, 2015
  3. 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
Loading