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
    • Nick Lewycky's avatar
      Print our uint64_t with the more portable (C99 and C++0x) %PRIu64 format · 2b473f8c
      Nick Lewycky authored
      specifier.
      
      llvm-svn: 129384
      2b473f8c
    • Andrew Trick's avatar
      PreRA scheduler heuristic fixes: VRegCycle, TokenFactor latency. · c5dd24a5
      Andrew Trick authored
      UnitsSharePred was a source of randomness in the scheduler: node
      priority depended on the queue data structure. I rewrote the recent
      VRegCycle heuristics to completely replace the old heuristic without
      any randomness. To make these heuristic adjustments to node latency work,
      I also needed to do something a little more reasonable with TokenFactor. I
      gave it zero latency to its consumers and always schedule it as low as
      possible.
      
      llvm-svn: 129383
      c5dd24a5
    • Oscar Fuentes's avatar
      Document how to build a LLVM pass with CMake out of source. · 23fe31cc
      Oscar Fuentes authored
      Patch by arrowdodger!
      
      llvm-svn: 129381
      23fe31cc
Loading