Skip to content
  1. Jun 27, 2009
    • Dan Gohman's avatar
      Incorporate the insertion point into the key of SCEVExpander's CSE map. · daafbe61
      Dan Gohman authored
      This helps it avoid reusing an instruction that doesn't dominate all
      of the users, in cases where the original instruction was inserted
      before all of the users were known.  This may result in redundant
      expansions of sub-expressions that depend on loop-unpredictable values
      in some cases, however this isn't very common, and it primarily impacts
      IndVarSimplify, so GVN can be expected to clean these up.
      
      This eliminates the need for IndVarSimplify's FixUsesBeforeDefs,
      which fixes several bugs.
      
      llvm-svn: 74352
      daafbe61
    • Devang Patel's avatar
      Remove unused routines. · 0f2eb5b9
      Devang Patel authored
      llvm-svn: 74351
      0f2eb5b9
  2. Jun 26, 2009
  3. Jun 25, 2009
  4. Jun 24, 2009
  5. Jun 23, 2009
  6. Jun 22, 2009
  7. Jun 20, 2009
  8. Jun 19, 2009
  9. Jun 18, 2009
  10. Jun 17, 2009
    • Dale Johannesen's avatar
      This fixes a bug introduced in 72661, which can · 81b6463e
      Dale Johannesen authored
      move loads back past a check that the load address
      is valid, see new testcase.  The test that went
      in with 72661 has exactly this case, except that
      the conditional it's moving past is checking
      something else; I've settled for changing that
      test to reference a global, not a pointer.  It
      may be possible to scan all the tests you pass and
      make sure none of them are checking any component
      of the address, but it's not trivial and I'm not
      trying to do that here.
      
      llvm-svn: 73632
      81b6463e
    • Torok Edwin's avatar
      Add debug message about non-local loads being clobbered. · ba93ea76
      Torok Edwin authored
      llvm-svn: 73625
      ba93ea76
    • Dan Gohman's avatar
      Update comments to use doxygen syntax. · d8329e83
      Dan Gohman authored
      llvm-svn: 73621
      d8329e83
    • Sanjiv Gupta's avatar
      · 2f2b0a19
      Sanjiv Gupta authored
      >> What if my global variable was into a different address space than stack?
      >>     
      >
      > It doesn't matter in terms of semantics: because AnalyzeGlobal
      > returned false, we're guaranteed the address of the global is never
      > taken.  I wouldn't be surprised if we end up generating invalid IR in
      > some cases, though, because of the semantics of replaceAllUsesWith.
      > Do you have a testcase that breaks?
      >
      >   
      The problem is replaceAllUsesWith asserts for type mismatch here. Try attached .bc with llvm-ld.
      
      assert(New->getType() == getType() &&
              "replaceAllUses of value with new value of different type!");
      
      Since stack is always on address space zero, I don't think that type of GV in a different address space is ever going to match.
      The other way is to allow replaceAllUsesWith to ignore address spaces while comparing types. (do we have  a way to do that ?).
      But then such an optimization may fail the entire idea of user wanting to place a variable into different memory space. The original idea of user might be to save on the stack space (data memory) and hence he asked the variable to be placed into different memory space (program memory). So the best bet here is to deny this optimization by checking
      
      GV->getType()->getAddressSpace() == 0. 
      
      llvm-svn: 73605
      2f2b0a19
    • Eli Friedman's avatar
      PR3439: Correct a silly mistake in the SimplifyDemandedUseBits code for · a0fba531
      Eli Friedman authored
      SRem.
      
      llvm-svn: 73598
      a0fba531
  11. Jun 16, 2009
  12. Jun 15, 2009
Loading