Skip to content
  1. Dec 10, 2012
    • Bill Wendling's avatar
      Revert r169656. · 4a8fc8f2
      Bill Wendling authored
      The linker will call `lto_codegen_add_must_preserve_symbol' on all globals that
      should be kept around. The linker will pretend that a dylib is being created.
      <rdar://problem/12528059>
      
      llvm-svn: 169770
      4a8fc8f2
    • Eli Bendersky's avatar
      Cleanup formatting, comments and naming. · 4c7296fd
      Eli Bendersky authored
      llvm-svn: 169762
      4c7296fd
    • Bill Wendling's avatar
      Don't use a red zone for code coverage if the user specified `-mno-red-zone'. · 74f334e4
      Bill Wendling authored
      The `-mno-red-zone' flag wasn't being propagated to the functions that code
      coverage generates. This allowed some of them to use the red zone when that
      wasn't allowed.
      <rdar://problem/12843084>
      
      llvm-svn: 169754
      74f334e4
    • Sean Silva's avatar
      Fix funky copy-pasted grammatical error. · aab278fb
      Sean Silva authored
      PR14343
      
      llvm-svn: 169742
      aab278fb
    • Chandler Carruth's avatar
      Add a new visitor for walking the uses of a pointer value. · e41e7b79
      Chandler Carruth authored
      This visitor provides infrastructure for recursively traversing the
      use-graph of a pointer-producing instruction like an alloca or a malloc.
      It maintains a worklist of uses to visit, so it can handle very deep
      recursions. It automatically looks through instructions which simply
      translate one pointer to another (bitcasts and GEPs). It tracks the
      offset relative to the original pointer as long as that offset remains
      constant and exposes it during the visit as an APInt offset. Finally, it
      performs conservative escape analysis.
      
      However, currently it has some limitations that should be addressed
      going forward:
      1) It doesn't handle vectors of pointers.
      2) It doesn't provide a cheaper visitor when the constant offset
         tracking isn't needed.
      3) It doesn't support non-instruction pointer values.
      
      The current functionality is exactly what is required to implement the
      SROA pointer-use visitors in terms of this one, rather than in terms of
      their own ad-hoc base visitor, which was always very poorly specified.
      SROA has been converted to use this, and the code there deleted which
      this utility now provides.
      
      Technically speaking, using this new visitor allows SROA to handle a few
      more cases than it previously did. It is now more aggressive in ignoring
      chains of instructions which look like they would defeat SROA, but in
      fact do not because they never result in a read or write of memory.
      While this is "neat", it shouldn't be interesting for real programs as
      any such chains should have been removed by others passes long before we
      get to SROA. As a consequence, I've not added any tests for these
      features -- it shouldn't be part of SROA's contract to perform such
      heroics.
      
      The goal is to extend the functionality of this visitor going forward,
      and re-use it from passes like ASan that can benefit from doing
      a detailed walk of the uses of a pointer.
      
      Thanks to Ben Kramer for the code review rounds and lots of help
      reviewing and debugging this patch.
      
      llvm-svn: 169728
      e41e7b79
  2. Dec 09, 2012
  3. Dec 08, 2012
    • Chandler Carruth's avatar
      Revert the patches adding a popcount loop idiom recognition pass. · 91e47532
      Chandler Carruth authored
      There are still bugs in this pass, as well as other issues that are
      being worked on, but the bugs are crashers that occur pretty easily in
      the wild. Test cases have been sent to the original commit's review
      thread.
      
      This reverts the commits:
        r169671: Fix a logic error.
        r169604: Move the popcnt tests to an X86 subdirectory.
        r168931: Initial commit adding the pass.
      
      llvm-svn: 169683
      91e47532
    • Logan Chien's avatar
      Fix Windows build breakage. · 6ebca4be
      Logan Chien authored
      Windows does not have <stdint.h>, should include
      "llvm/Support/DataTypes.h" instead.
      
      llvm-svn: 169672
      6ebca4be
    • Bill Wendling's avatar
      Add the `lto_codegen_set_export_dynamic' function. · 65a6ee11
      Bill Wendling authored
      This function sets the `_exportDynamic' ivar. When that's set, we export all
      symbols (e.g. we don't run the internalize pass). This is equivalent to the
      `--export-dynamic' linker flag in GNU land:
      
      --export-dynamic
        When creating a dynamically linked executable, add all symbols to the dynamic
        symbol table. The dynamic symbol table is the set of symbols which are visible
        from dynamic objects at run time. If you do not use this option, the dynamic
        symbol table will normally contain only those symbols which are referenced by
        some dynamic object mentioned in the link. If you use dlopen to load a dynamic
        object which needs to refer back to the symbols defined by the program, rather
        than some other dynamic object, then you will probably need to use this option
        when linking the program itself.
      
      The Darwin linker will support this via the `-export_dynamic' flag. We should
      modify clang to support this via the `-rdynamic' flag.
      
      llvm-svn: 169656
      65a6ee11
    • Jim Grosbach's avatar
      Add C API for specifying CPU to the disassembler. · 0ca9d5b7
      Jim Grosbach authored
      It was a nasty oversight that we didn't include this when we added this
      API in the first place. Blech.
      
      rdar://12839439
      
      llvm-svn: 169653
      0ca9d5b7
    • Bill Wendling's avatar
  4. Dec 07, 2012
  5. Dec 06, 2012
  6. Dec 05, 2012
Loading