Skip to content
  1. Sep 15, 2012
    • Benjamin Kramer's avatar
      X86: Emitting x87 fsin/fcos for sinf/cosf is not safe without unsafe fp math. · ece43425
      Benjamin Kramer authored
      This was only an issue if sse is disabled.
      
      llvm-svn: 163967
      ece43425
    • Chandler Carruth's avatar
      Port the SSAUpdater-based promotion logic from the old SROA pass to the · 70b44c5c
      Chandler Carruth authored
      new one, and add support for running the new pass in that mode and in
      that slot of the pass manager. With this the new pass can completely
      replace the old one within the pipeline.
      
      The strategy for enabling or disabling the SSAUpdater logic is to do it
      by making the requirement of the domtree analysis optional. By default,
      it is required and we get the standard mem2reg approach. This is usually
      the desired strategy when run in stand-alone situations. Within the
      CGSCC pass manager, we disable requiring of the domtree analysis and
      consequentially trigger fallback to the SSAUpdater promotion.
      
      In theory this would allow the pass to re-use a domtree if one happened
      to be available even when run in a mode that doesn't require it. In
      practice, it lets us have a single pass rather than two which was
      simpler for me to wrap my head around.
      
      There is a hidden flag to force the use of the SSAUpdater code path for
      the purpose of testing. The primary testing strategy is just to run the
      existing tests through that path. One notable difference is that it has
      custom code to handle lifetime markers, and one of the tests has been
      enhanced to exercise that code.
      
      This has survived a bootstrap and the test suite without serious
      correctness issues, however my run of the test suite produced *very*
      alarming performance numbers. I don't entirely understand or trust them
      though, so more investigation is on-going.
      
      To aid my understanding of the performance impact of the new SROA now
      that it runs throughout the optimization pipeline, I'm enabling it by
      default in this commit, and will disable it again once the LNT bots have
      picked up one iteration with it. I want to get those bots (which are
      much more stable) to evaluate the impact of the change before I jump to
      any conclusions.
      
      NOTE: Several Clang tests will fail because they run -O3 and check the
      result's order of output. They'll go back to passing once I disable it
      again.
      
      llvm-svn: 163965
      70b44c5c
    • Akira Hatanaka's avatar
      Remove aligned/unaligned load/store fragments defined in MipsInstrInfo.td and · 3e7ba761
      Akira Hatanaka authored
      use load/store fragments defined in TargetSelectionDAG.td in place of them.
      Unaligned loads/stores are either expanded or lowered to target-specific nodes,
      so instruction selection should see only aligned load/store nodes.
      
      No changes in functionality.
      
      llvm-svn: 163960
      3e7ba761
    • Craig Topper's avatar
      Revert r163878 as it breaks on targets with alternate register names. Such... · f8f0a23c
      Craig Topper authored
      Revert r163878 as it breaks on targets with alternate register names. Such targets do not exist in the main tree so this was not noticed.
      
      llvm-svn: 163959
      f8f0a23c
    • Akira Hatanaka's avatar
      Handled unaligned load/stores properly in Mips16 · 189d0add
      Akira Hatanaka authored
      Patch by Reed Kotler.
      
      llvm-svn: 163956
      189d0add
    • Manman Ren's avatar
      PGO: preserve branch-weight metadata when simplifying two branches with a common · bfb9d435
      Manman Ren authored
      destination.
      
      Updated previous implementation to fix a case not covered:
      // PBI: br i1 %x, TrueDest, BB
      // BI:  br i1 %y, TrueDest, FalseDest
      The other case was handled correctly.
      // PBI: br i1 %x, BB, FalseDest
      // BI:  br i1 %y, TrueDest, FalseDest
      
      Also tried to use 64-bit arithmetic instead of APInt with scale to simplify the
      computation. Let me know if you have other opinions about this.
      
      llvm-svn: 163954
      bfb9d435
    • Andrew Trick's avatar
      TableGen subtarget parser. Handle new machine model. · 1e46d488
      Andrew Trick authored
      Collect processor resources from the subtarget defs.
      
      llvm-svn: 163953
      1e46d488
    • Andrew Trick's avatar
      TableGen subtarget parser. Handle new machine model. · 33401e84
      Andrew Trick authored
      Infer SchedClasses from variants defined by the target or subtarget.
      
      llvm-svn: 163952
      33401e84
    • Andrew Trick's avatar
      TableGen subtarget parser. Handle new machine model. · 76686496
      Andrew Trick authored
      Collect SchedClasses and SchedRW types from the subtarget defs.
      
      llvm-svn: 163951
      76686496
    • Daniel Dunbar's avatar
      cmake: Fix file path. · b93a2ceb
      Daniel Dunbar authored
      llvm-svn: 163950
      b93a2ceb
    • Daniel Dunbar's avatar
      formatted_raw_ostream: Fix a serious bug in tell(). · 9affb245
      Daniel Dunbar authored
       - The current_pos function is supposed to return all the written bytes, not the
         current position of the underlying stream.
       - This caused tell() to be broken whenever the underlying stream had buffered
         content.
      
      llvm-svn: 163948
      9affb245
    • Bill Wendling's avatar
      Some small reorganization to get read for Attributes overhaul. · 25cc99fa
      Bill Wendling authored
      llvm-svn: 163947
      25cc99fa
    • Bill Wendling's avatar
      Remove comment. · 8d26bc38
      Bill Wendling authored
      llvm-svn: 163945
      8d26bc38
    • David Blaikie's avatar
      Fix up erroneous alignas usage while making this portable to GCC 4.7 · 21e27ce2
      David Blaikie authored
      Review by Chandler Carruth.
      
      llvm-svn: 163944
      21e27ce2
  2. Sep 14, 2012
Loading