Skip to content
  1. Jan 11, 2012
  2. Jan 06, 2012
  3. Jan 05, 2012
  4. Dec 29, 2011
    • Nick Lewycky's avatar
      Change CaptureTracking to pass a Use* instead of a Value* when a value is · 4c378a44
      Nick Lewycky authored
      captured. This allows the tracker to look at the specific use, which may be
      especially interesting for function calls.
      
      Use this to fix 'nocapture' deduction in FunctionAttrs. The existing one does
      not iterate until a fixpoint and does not guarantee that it produces the same
      result regardless of iteration order. The new implementation builds up a graph
      of how arguments are passed from function to function, and uses a bottom-up walk
      on the argument-SCCs to assign nocapture. This gets us nocapture more often, and
      does so rather efficiently and independent of iteration order.
      
      llvm-svn: 147327
      4c378a44
  5. Dec 12, 2011
  6. Dec 07, 2011
  7. Dec 02, 2011
  8. Dec 01, 2011
  9. Nov 30, 2011
  10. Nov 29, 2011
  11. Nov 15, 2011
  12. Nov 12, 2011
  13. Nov 11, 2011
  14. Nov 03, 2011
  15. Oct 20, 2011
    • Eli Friedman's avatar
      Refactor code from inlining and globalopt that checks whether a function... · 1923a330
      Eli Friedman authored
      Refactor code from inlining and globalopt that checks whether a function definition is unused, and enhance it so it can tell that functions which are only used by a blockaddress are in fact dead.  This probably doesn't happen much on most code, but the Linux kernel's _THIS_IP_ can trigger this issue with blockaddress.  (GlobalDCE can also handle the given tescase, but we only run that at -O3.)  Found while looking at PR11180.
      
      llvm-svn: 142572
      1923a330
  16. Oct 01, 2011
    • Andrew Trick's avatar
      Inlining and unrolling heuristics should be aware of free truncs. · f7656015
      Andrew Trick authored
      We want heuristics to be based on accurate data, but more importantly
      we don't want llvm to behave randomly. A benign trunc inserted by an
      upstream pass should not cause a wild swings in optimization
      level. See PR11034. It's a general problem with threshold-based
      heuristics, but we can make it less bad.
      
      llvm-svn: 140919
      f7656015
    • Andrew Trick's avatar
      whitespace · caa500bf
      Andrew Trick authored
      llvm-svn: 140916
      caa500bf
  17. Sep 27, 2011
  18. Sep 21, 2011
  19. Sep 20, 2011
  20. Aug 19, 2011
  21. Aug 16, 2011
  22. Aug 15, 2011
  23. Aug 12, 2011
  24. Aug 10, 2011
  25. Aug 04, 2011
  26. Aug 02, 2011
  27. 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
  28. Jul 30, 2011
  29. Jul 29, 2011
    • Eli Friedman's avatar
      Misc optimizer+codegen work for 'cmpxchg' and 'atomicrmw'. They appear to be · adec587d
      Eli Friedman authored
      working on x86 (at least for trivial testcases); other architectures will
      need more work so that they actually emit the appropriate instructions for
      orderings stricter than 'monotonic'. (As far as I can tell, the ARM, PPC,
      Mips, and Alpha backends need such changes.)
      
      llvm-svn: 136457
      adec587d
    • Chandler Carruth's avatar
      Rewrite the CMake build to use explicit dependencies between libraries, · 9d7feab3
      Chandler Carruth authored
      specified in the same file that the library itself is created. This is
      more idiomatic for CMake builds, and also allows us to correctly specify
      dependencies that are missed due to bugs in the GenLibDeps perl script,
      or change from compiler to compiler. On Linux, this returns CMake to
      a place where it can relably rebuild several targets of LLVM.
      
      I have tried not to change the dependencies from the ones in the current
      auto-generated file. The only places I've really diverged are in places
      where I was seeing link failures, and added a dependency. The goal of
      this patch is not to start changing the dependencies, merely to move
      them into the correct location, and an explicit form that we can control
      and change when necessary.
      
      This also removes a serialization point in the build because we don't
      have to scan all the libraries before we begin building various tools.
      We no longer have a step of the build that regenerates a file inside the
      source tree. A few other associated cleanups fall out of this.
      
      This isn't really finished yet though. After talking to dgregor he urged
      switching to a single CMake macro to construct libraries with both
      sources and dependencies in the arguments. Migrating from the two macros
      to that style will be a follow-up patch.
      
      Also, llvm-config is still generated with GenLibDeps.pl, which means it
      still has slightly buggy dependencies. The internal CMake
      'llvm-config-like' macro uses the correct explicitly specified
      dependencies however. A future patch will switch llvm-config generation
      (when using CMake) to be based on these deps as well.
      
      This may well break Windows. I'm getting a machine set up now to dig
      into any failures there. If anyone can chime in with problems they see
      or ideas of how to solve them for Windows, much appreciated.
      
      llvm-svn: 136433
      9d7feab3
  30. Jul 27, 2011
  31. Jul 26, 2011
Loading