Skip to content
  1. Apr 13, 2011
  2. Apr 12, 2011
    • Johnny Chen's avatar
      The Thumb2 RFE instructions need to have their second halfword fully specified. · 960eef3d
      Johnny Chen authored
      In addition, the base register is not rGPR, but GPR with th exception that:
      
          if n == 15 then UNPREDICTABLE
      
      rdar://problem/9273836
      
      llvm-svn: 129391
      960eef3d
    • Jakob Stoklund Olesen's avatar
      SparseBitVector is SLOW. · c49df2c0
      Jakob Stoklund Olesen authored
      Use a Bitvector instead, we didn't need the smaller memory footprint anyway.
      This makes the greedy register allocator 10% faster.
      
      llvm-svn: 129390
      c49df2c0
    • 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
    • Johnny Chen's avatar
      01637b9a
    • Andrew Trick's avatar
      Revert 129383. It causes some targets to hit a scheduler assert. · 1b60ad66
      Andrew Trick authored
      llvm-svn: 129385
      1b60ad66
Loading