Skip to content
  1. May 12, 2011
  2. May 11, 2011
  3. May 09, 2011
  4. May 04, 2011
  5. May 02, 2011
  6. May 01, 2011
  7. Apr 30, 2011
  8. Apr 28, 2011
  9. Apr 24, 2011
  10. Apr 23, 2011
  11. Apr 22, 2011
  12. Apr 21, 2011
  13. Apr 20, 2011
  14. Apr 19, 2011
  15. Apr 15, 2011
  16. Apr 13, 2011
  17. Apr 12, 2011
    • Jim Grosbach's avatar
      MCJIT lazy relocation resolution and symbol address re-assignment. · 733d305f
      Jim Grosbach authored
      Add handling for tracking the relocations on symbols and resolving them.
      Keep track of the relocations even after they are resolved so that if
      the RuntimeDyld client moves the object, it can update the address and any
      relocations to that object will be updated.
      
      For our trival object file load/run test harness (llvm-rtdyld), this enables
      relocations between functions located in the same object module. It should
      be trivially extendable to load multiple objects with mutual references.
      
      As a simple example, the following now works (running on x86_64 Darwin 10.6):
      
      
      $ cat t.c
      int bar() {
        return 65;
      }
      
      int main() {
        return bar();
      }
      $ clang t.c -fno-asynchronous-unwind-tables -o t.o -c
      $ otool -vt t.o
      t.o:
      (__TEXT,__text) section
      _bar:
      0000000000000000  pushq %rbp
      0000000000000001  movq  %rsp,%rbp
      0000000000000004  movl  $0x00000041,%eax
      0000000000000009  popq  %rbp
      000000000000000a  ret
      000000000000000b  nopl  0x00(%rax,%rax)
      _main:
      0000000000000010  pushq %rbp
      0000000000000011  movq  %rsp,%rbp
      0000000000000014  subq  $0x10,%rsp
      0000000000000018  movl  $0x00000000,0xfc(%rbp)
      000000000000001f  callq 0x00000024
      0000000000000024  addq  $0x10,%rsp
      0000000000000028  popq  %rbp
      0000000000000029  ret
      $ llvm-rtdyld t.o -debug-only=dyld ; echo $?
      Function sym: '_bar' @ 0
      Function sym: '_main' @ 16
      Extracting function: _bar from [0, 15]
          allocated to 0x100153000
      Extracting function: _main from [16, 41]
          allocated to 0x100154000
      Relocation at '_main' + 16 from '_bar(Word1: 0x2d000000)
      Resolving relocation at '_main' + 16 (0x100154010) from '_bar (0x100153000)(pcrel, type: 2, Size: 4).
      loaded '_main' at: 0x100154000
      65
      $
      
      llvm-svn: 129388
      733d305f
    • Jim Grosbach's avatar
      Tidy up a bit now that we're using the MemoryManager interface. · 3ed03f18
      Jim Grosbach authored
      llvm-svn: 129328
      3ed03f18
  18. Apr 11, 2011
  19. Apr 09, 2011
  20. Apr 08, 2011
    • Jim Grosbach's avatar
      Refactor MCJIT 32-bit section loading. · 18b81c52
      Jim Grosbach authored
      Teach 32-bit section loading to use the Memory Manager interface, just like
      the 64-bit loading does. Tidy up a few other things here and there.
      
      llvm-svn: 129138
      18b81c52
  21. Apr 07, 2011
  22. Apr 06, 2011
    • Jim Grosbach's avatar
      RuntimeDyld should use the memory manager API. · 23de2437
      Jim Grosbach authored
      Start teaching the runtime Dyld interface to use the memory manager API
      for allocating space. Rather than mapping directly into the MachO object,
      we extract the payload for each object and copy it into a dedicated buffer
      allocated via the memory manager. For now, just do Segment64, so this works
      on x86_64, but not yet on ARM.
      
      llvm-svn: 128973
      23de2437
  23. Apr 05, 2011
    • Chris Lattner's avatar
      remove graphprinter support for domfrontier. · 706754c1
      Chris Lattner authored
      llvm-svn: 128938
      706754c1
    • Andrew Trick's avatar
      Added *hidden* flags -print-options and -print-all-options so · 12004013
      Andrew Trick authored
      developers can see if their driver changed any cl::Option's. The
      current implementation isn't perfect but handles most kinds of
      options. This is nice to have when decomposing the stages of
      compilation and moving between different drivers. It's also a good
      sanity check when comparing results produced by different command line
      invocations that are expected to produce the comparable results.
      
      Note: This is not an attempt to prolong the life of cl::Option. On the
      contrary, it's a placeholder for a feature that must exist when
      cl::Option is replaced by a more appropriate framework. A new
      framework needs: a central option registry, dynamic name lookup,
      non-global containers of option values (e.g. per-module,
      per-function), *and* the ability to print options values and their defaults at
      any point during compilation.
      
      llvm-svn: 128910
      12004013
    • Andrew Trick's avatar
      whitespace · b826ae83
      Andrew Trick authored
      llvm-svn: 128905
      b826ae83
    • Oscar Fuentes's avatar
      Rename LLVMConfig.cmake to LLVM-Config.cmake. The *Config.cmake naming · d8a6dd6c
      Oscar Fuentes authored
      scheme is used by the functionality related to find_package.
      
      llvm-svn: 128889
      d8a6dd6c
    • Jim Grosbach's avatar
      Layer the memory manager between the JIT and the runtime Dyld. · 2dcef050
      Jim Grosbach authored
      The JITMemory manager references LLVM IR constructs directly, while the
      runtime Dyld works at a lower level and can handle objects which may not
      originate from LLVM IR. Introduce a new layer for the memory manager to
      handle the interface between them. For the MCJIT, this layer will be almost
      entirely simply a call-through w/ translation between the IR objects and
      symbol names.
      
      llvm-svn: 128851
      2dcef050
  24. Apr 04, 2011
  25. Apr 01, 2011
Loading