Skip to content
  1. Oct 12, 2011
    • Nick Lewycky's avatar
      Add missing space. · c585de67
      Nick Lewycky authored
      llvm-svn: 141750
      c585de67
    • Nick Lewycky's avatar
      Fix indent in comment. · 064c1c0e
      Nick Lewycky authored
      llvm-svn: 141749
      064c1c0e
    • Evan Cheng's avatar
      Fix r141744. · af138954
      Evan Cheng authored
      1. The speculation check may not have been performed if the BB hasn't had a load
         LICM candidate.
      2. If the candidate would be CSE'ed, then go ahead and speculatively LICM the
         instruction even if it's in high register pressure situation.
      
      llvm-svn: 141747
      af138954
    • Jakob Stoklund Olesen's avatar
      Fix -widen-vmovs liveness issues. · 39c31a77
      Jakob Stoklund Olesen authored
      When widening a copy, we are reading a larger register that may not be
      live.  Use an <undef> flag to tell the register scavenger and machine
      code verifier that we know the value isn't defined.
      
      We now widen:
      
        %S6<def> = COPY %S4<kill>, %D3<imp-def>
      
      into:
      
        %D3<def> = VMOVD %D2<undef>, pred:14, pred:%noreg, %S4<imp-use,kill>
      
      This also keeps the <kill> flag on %S4 so we don't inadvertently kill a
      live value in %S5.
      
      Finally, ensure that ARMBaseInstrInfo::setExecutionDomain() preserves
      the <undef> flag when converting VMOVD to VORR.
      
      llvm-svn: 141746
      39c31a77
    • Evan Cheng's avatar
      Refine r141689 with a tri-state variable. · f192ca07
      Evan Cheng authored
      Also teach MachineLICM to avoid "speculation" when register pressure is high.
      
      llvm-svn: 141744
      f192ca07
    • Akira Hatanaka's avatar
      Change name of class to ArithOverflowR. · 0f4ecf75
      Akira Hatanaka authored
      llvm-svn: 141743
      0f4ecf75
    • Akira Hatanaka's avatar
      Define class ArithLogicI. Make 32-bit and 64-bit arithmetic and logical · 8f0d549c
      Akira Hatanaka authored
      instructions with two register operands derive from it.
      
      llvm-svn: 141742
      8f0d549c
    • Akira Hatanaka's avatar
      Fix comment. · 8d4f74a6
      Akira Hatanaka authored
      llvm-svn: 141737
      8d4f74a6
    • Akira Hatanaka's avatar
      Define classes ArithLogicR and ArithLogicOfR and make 32-bit and 64-bit · ae5a9d65
      Akira Hatanaka authored
      arithmetic and logical instructions with three register operands derive from
      them. Fix instruction encoding too.
      
      llvm-svn: 141736
      ae5a9d65
    • Eric Christopher's avatar
      Add a new wrapper node for a DILexicalBlock that encapsulates it and a · 6647b830
      Eric Christopher authored
      file. Since it should only be used when necessary propagate it through
      the backend code generation and tweak testcases accordingly.
      
      This helps with code like in clang's test/CodeGen/debug-info-line.c where
      we have multiple #line directives within a single lexical block and want
      to generate only a single block that contains each file change.
      
      Part of rdar://10246360
      
      llvm-svn: 141729
      6647b830
    • Eric Christopher's avatar
      Formatting. · 57d16927
      Eric Christopher authored
      llvm-svn: 141728
      57d16927
    • Eric Christopher's avatar
      Spacing. · cbce39c8
      Eric Christopher authored
      llvm-svn: 141727
      cbce39c8
    • Bill Wendling's avatar
      N.B. This is with the new EH scheme: · 579ff6c3
      Bill Wendling authored
      The blocks with invokes have branches to the dispatch block, because that more
      correctly models the behavior of the CFG. The dispatch of course has edges to
      the landing pads. Those landing pads could contain invokes, which then have
      branches back to the dispatch. This creates a loop. The machine LICM pass looks
      at this loop and thinks it can hoist elements out of it. But because the
      dispatch is an alternate entry point into the program, the hoisted instructions
      won't be executed.
      
      I wasn't able to get a testcase which was small and could reproduce all of the
      time. The function_try_block.cpp in llvm-test was where this showed up.
      
      llvm-svn: 141726
      579ff6c3
    • Akira Hatanaka's avatar
      Fix function isUnalignedLoadStore. · 1c184658
      Akira Hatanaka authored
      llvm-svn: 141722
      1c184658
  2. Oct 11, 2011
Loading