Skip to content
  1. Nov 11, 2011
    • Eli Friedman's avatar
      Get rid of an optimization in SCCP which appears to have many issues. ... · 0a309292
      Eli Friedman authored
      Get rid of an optimization in SCCP which appears to have many issues.  Specifically, it doesn't handle many cases involving undef correctly, and it is missing other checks which
      lead to it trying to re-mark a value marked as a constant with a different value.  It also appears to trigger very rarely.
      
      Fixes PR11357.
      
      llvm-svn: 144352
      0a309292
  2. Sep 21, 2011
  3. Sep 04, 2011
  4. Sep 02, 2011
  5. Sep 01, 2011
  6. Aug 31, 2011
    • Bill Wendling's avatar
      Make sure we aren't deleting the landingpad instruction. · 770d0f07
      Bill Wendling authored
      The landingpad instruction is required in the landing pad block. Because we're
      not deleting terminating instructions, the invoke may still jump to here (see
      Transforms/SCCP/2004-11-16-DeadInvoke.ll). Remove all uses of the landingpad
      instruction, but keep it around until code-gen can remove the basic block.
      
      llvm-svn: 138890
      770d0f07
  7. Aug 17, 2011
  8. Aug 16, 2011
  9. Aug 12, 2011
    • Bill Wendling's avatar
      Initial commit of the 'landingpad' instruction. · fae14758
      Bill Wendling authored
      This implements the 'landingpad' instruction. It's used to indicate that a basic
      block is a landing pad. There are several restrictions on its use (see
      LangRef.html for more detail). These restrictions allow the exception handling
      code to gather the information it needs in a much more sane way.
      
      This patch has the definition, implementation, C interface, parsing, and bitcode
      support in it.
      
      llvm-svn: 137501
      fae14758
  10. Aug 02, 2011
  11. Jul 31, 2011
    • Bill Wendling's avatar
      Add the 'resume' instruction for the new EH rewrite. · f891bf8b
      Bill Wendling authored
      This adds the 'resume' instruction class, IR parsing, and bitcode reading and
      writing. The 'resume' instruction resumes propagation of an existing (in-flight)
      exception whose unwinding was interrupted with a 'landingpad' instruction (to be
      added later).
      
      llvm-svn: 136589
      f891bf8b
  12. Jul 30, 2011
  13. Jul 27, 2011
  14. Jul 25, 2011
  15. Jul 21, 2011
  16. Jul 19, 2011
  17. Jul 18, 2011
  18. May 21, 2011
  19. Apr 15, 2011
  20. Jan 21, 2011
  21. Jan 16, 2011
  22. Nov 30, 2010
  23. Oct 19, 2010
    • Owen Anderson's avatar
      Get rid of static constructors for pass registration. Instead, every pass... · 6c18d1aa
      Owen Anderson authored
      Get rid of static constructors for pass registration.  Instead, every pass exposes an initializeMyPassFunction(), which
      must be called in the pass's constructor.  This function uses static dependency declarations to recursively initialize
      the pass's dependencies.
      
      Clients that only create passes through the createFooPass() APIs will require no changes.  Clients that want to use the
      CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h
      before parsing commandline arguments.
      
      I have tested this with all standard configurations of clang and llvm-gcc on Darwin.  It is possible that there are problems
      with the static dependencies that will only be visible with non-standard options.  If you encounter any crash in pass
      registration/creation, please send the testcase to me directly.
      
      llvm-svn: 116820
      6c18d1aa
  24. Oct 08, 2010
  25. Aug 18, 2010
  26. Aug 13, 2010
  27. Aug 06, 2010
  28. Jul 29, 2010
  29. Jul 22, 2010
  30. Apr 26, 2010
  31. Apr 09, 2010
  32. Apr 06, 2010
    • Chris Lattner's avatar
      fix a really nasty bug that Evan was tracking in SCCP. When resolving · adca6082
      Chris Lattner authored
      undefs in branches/switches, we have two cases: a branch on a literal
      undef or a branch on a symbolic value which is undef.  If we have a
      literal undef, the code was correct: forcing it to a constant is the
      right thing to do.
      
      If we have a branch on a symbolic value that is undef, we should force
      the symbolic value to a constant, which then makes the successor block
      live.  Forcing the condition of the branch to being a constant isn't 
      safe if later paths become live and the value becomes overdefined.  This
      is the case that 'forcedconstant' is designed to handle, so just use it.
      
      This fixes rdar://7765019 but there is no good testcase for this, the
      one I have is too insane to be useful in the future.
      
      llvm-svn: 100478
      adca6082
  33. Apr 01, 2010
  34. Mar 26, 2010
  35. Mar 24, 2010
    • Gabor Greif's avatar
      Finally land the InvokeInst operand reordering. · a2fbc0ae
      Gabor Greif authored
      I have audited all getOperandNo calls now, fixing
      hidden assumptions. CallSite related uglyness will
      be eliminated successively.
      
      Note this patch has a long and griveous history,
      for all the back-and-forths have a look at
      CallSite.h's log.
      
      llvm-svn: 99399
      a2fbc0ae
Loading