Skip to content
  1. Dec 07, 2010
  2. Dec 02, 2010
    • Tobias Grosser's avatar
      Move check of command line options after command line parsing. · 083379f8
      Tobias Grosser authored
      The check to not allow -analyze and -disable-output at the same time was done
      before parsing the command line flags. Therefore it never triggered, and in case
      both options where used opt segfaulted. Fix this by moving this check a after
      command line parsing.
      
      llvm-svn: 120732
      083379f8
  3. Nov 29, 2010
  4. Nov 03, 2010
  5. Oct 20, 2010
    • Tobias Grosser's avatar
      Add RegionPass support. · 23c8341c
      Tobias Grosser authored
      A RegionPass is executed like a LoopPass but on the regions detected by the
      RegionInfo pass instead of the loops detected by the LoopInfo pass.
      
      llvm-svn: 116905
      23c8341c
  6. 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
  7. Oct 07, 2010
  8. Sep 08, 2010
  9. Sep 01, 2010
  10. Aug 20, 2010
  11. Aug 18, 2010
  12. Aug 06, 2010
  13. Jul 12, 2010
  14. May 27, 2010
  15. May 14, 2010
  16. Apr 17, 2010
  17. Mar 24, 2010
  18. Mar 22, 2010
  19. Feb 18, 2010
  20. Jan 27, 2010
    • Jeffrey Yasskin's avatar
      Kill ModuleProvider and ghost linkage by inverting the relationship between · 091217be
      Jeffrey Yasskin authored
      Modules and ModuleProviders. Because the "ModuleProvider" simply materializes
      GlobalValues now, and doesn't provide modules, it's renamed to
      "GVMaterializer". Code that used to need a ModuleProvider to materialize
      Functions can now materialize the Functions directly. Functions no longer use a
      magic linkage to record that they're materializable; they simply ask the
      GVMaterializer.
      
      Because the C ABI must never change, we can't remove LLVMModuleProviderRef or
      the functions that refer to it. Instead, because Module now exposes the same
      functionality ModuleProvider used to, we store a Module* in any
      LLVMModuleProviderRef and translate in the wrapper methods.  The bindings to
      other languages still use the ModuleProvider concept.  It would probably be
      worth some time to update them to follow the C++ more closely, but I don't
      intend to do it.
      
      Fixes http://llvm.org/PR5737 and http://llvm.org/PR5735.
      
      llvm-svn: 94686
      091217be
  21. Jan 22, 2010
  22. Jan 18, 2010
  23. Jan 17, 2010
  24. Jan 05, 2010
  25. Dec 09, 2009
  26. Nov 03, 2009
  27. Oct 22, 2009
  28. Oct 14, 2009
  29. Sep 11, 2009
    • Dan Gohman's avatar
      Fix llvm-extract's "writing bitcode to a terminal" warning, which wasn't · e5929236
      Dan Gohman authored
      working. To support this, add an is_displayed() function to raw_ostream,
      and generalize Process::StandardOutIsDisplayed and friends in order to
      support it.
      
      Also, call RemoveFileOnSignal before creating a file instead of after, so
      that the file isn't left behind if the program is interrupted between when
      the file is created and RemoveFileOnSignal is called.
      
      While here, add a -S to llvm-extract and port it to IRReader so that it
      supports assembly input.
      
      llvm-svn: 81568
      e5929236
  30. Sep 05, 2009
  31. Sep 03, 2009
  32. Aug 31, 2009
    • Chris Lattner's avatar
      Fix some nasty callgraph dangling pointer problems in · 305b115a
      Chris Lattner authored
      argpromotion and structretpromote.  Basically, when replacing
      a function, they used the 'changeFunction' api which changes
      the entry in the function map (and steals/reuses the callgraph
      node).
      
      This has some interesting effects: first, the problem is that it doesn't
      update the "callee" edges in any callees of the function in the call graph.
      Second, this covers for a major problem in all the CGSCC pass stuff, which 
      is that it is completely broken when functions are deleted if they *don't*
      reuse a CGN.  (there is a cute little fixme about this though :).
      
      This patch changes the protocol that CGSCC passes must obey: now the CGSCC 
      pass manager copies the SCC and preincrements its iterator to avoid passes
      invalidating it.  This allows CGSCC passes to mutate the current SCC.  However
      multiple passes may be run on that SCC, so if passes do this, they are now
      required to *update* the SCC to be current when they return.
      
      Other less interesting parts of this patch are that it makes passes update
      the CG more directly, eliminates changeFunction, and requires clients of
      replaceCallSite to specify the new callee CGN if they are changing it.
      
      llvm-svn: 80527
      305b115a
Loading